/* ==========================================================================
   Semantic AI Knowledge Steward — Design System & Stylesheet (Light Theme)
   ========================================================================== */

/* Load Inter font from Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root {
  --font-main: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --font-heading: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --font-mono: 'JetBrains Mono', 'Fira Code', 'Consolas', 'Courier New', monospace;

  /* Color Palette - Clean Light Theme with Brand & Semantics Accents */
  --bg-app: #F8FAFC;
  --bg-panel: #FFFFFF;
  --bg-hover: #F1F5F9;
  --bg-subtle: #F8FAFC;
  
  --border-subtle: #E2E8F0;
  --border-strong: #CBD5E1;
  --border-focus: #2563EB;

  --text-primary: #0F172A;
  --text-secondary: #475569;
  --text-muted: #94A3B8;

  /* Brand & Semantic Colors */
  --brand-petrol: #003B46;
  --brand-petrol-hover: #07575B;
  --brand-green: #00A86B;
  --brand-green-light: #ECFDF5;
  --brand-green-border: #A7F3D0;
  
  --color-blue: #2563EB;
  --color-blue-light: #EFF6FF;
  --color-amber: #D97706;
  --color-amber-light: #FFFBEB;
  --color-amber-border: #FDE68A;
  
  --color-danger: #EF4444;
  --color-danger-light: #FEF2F2;

  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.07), 0 2px 4px -2px rgba(0, 0, 0, 0.05);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -4px rgba(0, 0, 0, 0.03);

  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
}

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  font-family: var(--font-main);
  background-color: var(--bg-app);
  color: var(--text-primary);
  height: 100vh;
  overflow: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Ensure ALL form elements and buttons globally inherit the unified Inter font */
input, button, select, textarea, optgroup {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  color: inherit;
}

.app-container {
  display: flex;
  flex-direction: column;
  height: 100vh;
  width: 100vw;
}

/* ==========================================================================
   Header / Top Navigation
   ========================================================================== */
.top-nav {
  min-height: 72px;
  background-color: var(--bg-panel);
  border-bottom: 1px solid var(--border-subtle);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  gap: 20px;
  box-shadow: var(--shadow-sm);
  z-index: 100;
  flex-shrink: 0;
}

.nav-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 260px;
}

.brand-logo svg {
  display: block;
}

.brand-logo-img {
  width: 32px;
  height: 36px;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.08));
}

.brand-info h1 {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--brand-petrol);
  letter-spacing: 0;
  line-height: 1.2;
  white-space: nowrap;
}

.brand-subtitle {
  font-size: 0.76rem;
  color: var(--text-secondary);
  font-weight: 500;
  white-space: nowrap;
}

.nav-meta {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 1 1 auto;
  justify-content: center;
  min-width: 0;
}

.meta-item label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-secondary);
  margin-right: 6px;
}

.domain-dropdown {
  padding: 6px 12px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-subtle);
  background-color: var(--bg-subtle);
  font-family: var(--font-main);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-primary);
  cursor: pointer;
  outline: none;
  transition: border-color 0.2s;
}

.domain-dropdown:focus {
  border-color: var(--border-focus);
}

.badge-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  border-radius: 20px;
  background-color: var(--bg-hover);
  border: 1px solid var(--border-subtle);
  font-size: 0.78rem;
  font-weight: 600;
}

.badge-label {
  color: var(--text-muted);
}

.badge-value {
  color: var(--color-blue);
  font-family: monospace;
}

.status-pill-success {
  background-color: var(--brand-green-light);
  border-color: var(--brand-green-border);
  color: #065F46;
}

.status-pill-warning {
  background-color: var(--color-amber-light);
  border-color: var(--color-amber-border);
  color: #92400E;
}

.status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--brand-green);
  display: inline-block;
}

.status-pill-warning .status-dot {
  background-color: var(--color-amber);
}

.nav-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
}

/* ==========================================================================
   Section Tabs: keeps the Graph central; Tasks & Data tucked into own tabs
   ========================================================================== */
.section-tabs {
  height: 38px;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0 20px;
  background-color: var(--bg-panel);
  border-bottom: 1px solid var(--border-subtle);
  overflow-x: auto;
  flex-shrink: 0;
}

.section-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  font-family: var(--font-main);
  font-size: 0.80rem;
  font-weight: 600;
  color: var(--text-muted);
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: all 0.15s;
}

.section-tab:hover { color: var(--text-primary); }

.section-tab.active {
  color: var(--brand-petrol);
  border-bottom-color: var(--brand-petrol);
}

.tab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  font-size: 0.66rem;
  font-weight: 700;
  color: #FFFFFF;
  background-color: #F59E0B;
  border-radius: 8px;
}

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 14px;
  font-family: var(--font-main);
  font-size: 0.82rem;
  font-weight: 600;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all 0.15s ease;
  outline: none;
  border: 1px solid transparent;
}

.btn-secondary {
  background-color: var(--bg-hover);
  color: var(--text-secondary);
  border-color: var(--border-subtle);
}

.btn-secondary:hover {
  background-color: #E2E8F0;
  color: var(--text-primary);
}

.btn-outline {
  background-color: transparent;
  color: var(--text-secondary);
  border-color: var(--border-subtle);
}

.btn-outline:hover {
  background-color: var(--bg-hover);
  border-color: var(--border-strong);
}

.btn-success {
  background-color: var(--brand-green);
  color: #FFFFFF;
}

.btn-success:hover {
  background-color: #059669;
}

.btn-primary {
  background-color: var(--brand-petrol, #008779);
  color: #FFFFFF;
  border-color: #007468;
}

.btn-primary:hover {
  background-color: #007468;
  border-color: #006157;
  color: #FFFFFF;
}

.btn-danger {
  background-color: var(--color-danger, #EF4444);
  color: #FFFFFF;
  border-color: #DC2626;
}

.btn-danger:hover {
  background-color: #DC2626;
  border-color: #B91C1C;
  color: #FFFFFF;
}

.btn-light-danger {
  background-color: var(--color-danger-light);
  color: var(--color-danger);
  border-color: #FECACA;
}

.btn-light-danger:hover {
  background-color: #FEE2E2;
}

.btn-block {
  width: 100%;
  justify-content: center;
}

.btn-icon {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--bg-panel);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-sm);
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.15s;
}

.btn-icon:hover {
  background-color: var(--bg-hover);
  color: var(--text-primary);
}

.btn-icon.active {
  background-color: var(--color-blue-light);
  border-color: #93C5FD;
  color: var(--color-blue);
}

/* ==========================================================================
   Main Workspace Layout (3 Panels)
   ========================================================================== */
.workspace-layout {
  position: relative;
  display: block;
  flex: 1;
  height: calc(100vh - 72px - 44px);
  overflow: hidden;
  background-color: var(--bg-app);
}

.workspace-layout.tab-panel.active {
  display: block;
}

/* Floating Knowledge Steward Agent Window */
/* Floating Knowledge Steward Agent Window (Global Omnipresent Surface) */
.panel-interview {
  position: fixed;
  top: 72px;
  left: 24px;
  width: 440px;
  min-width: 380px;
  max-width: calc(100vw - 48px);
  height: 640px;
  min-height: 460px;
  max-height: calc(100vh - 90px);
  resize: both;
  overflow: hidden;
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  box-shadow: 0 20px 45px -10px rgba(15, 23, 42, 0.18), 0 0 0 1px rgba(0, 0, 0, 0.04);
  z-index: 1000;
  display: flex;
  flex-direction: column;
  transition: opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1), transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  transform: scale(1) translateY(0);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.panel-interview.hidden {
  opacity: 0;
  transform: scale(0.95) translateY(-8px);
  pointer-events: none;
  visibility: hidden;
}

.floating-window-header {
  cursor: grab;
  -webkit-user-select: none;
  user-select: none;
  padding: 12px 16px;
  background: #FFFFFF;
  border-bottom: 1px solid var(--border-subtle);
  color: var(--slate-800);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.floating-window-header .panel-title {
  color: var(--slate-800);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
}

.floating-window-header .agent-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--teal-50, #ECFDF5);
  color: var(--teal-700, #047857);
  border: 1px solid var(--teal-200, #A7F3D0);
  border-radius: 12px;
  padding: 2px 8px;
  font-size: 0.7rem;
  font-weight: 600;
  margin-top: 2px;
}

.badge-voice-placeholder {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--bg-hover, #F8FAFC);
  color: var(--text-muted, #64748B);
  border: 1px dashed var(--border-subtle, #CBD5E1);
  border-radius: 10px;
  padding: 2px 7px;
  font-size: 0.68rem;
  font-weight: 600;
  cursor: help;
  white-space: nowrap;
  transition: all 0.2s;
}

.badge-voice-placeholder:hover {
  background: var(--slate-100, #F1F5F9);
  color: var(--slate-800);
  border-color: var(--border-color, #94A3B8);
}

.floating-window-header:active {
  cursor: grabbing;
}

.floating-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.drag-hint {
  font-size: 1rem;
  color: var(--text-muted, #94A3B8);
  letter-spacing: -1px;
  cursor: grab;
  padding: 2px 4px;
  -webkit-user-select: none;
  user-select: none;
}

.btn-icon-close {
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  border: 1px solid var(--border-subtle);
  background: var(--bg-hover, #F8FAFC);
  color: var(--text-muted, #64748B);
  cursor: pointer;
  font-size: 0.82rem;
  transition: all 0.15s ease;
}

.btn-icon-close:hover {
  background: #FEE2E2;
  border-color: #FCA5A5;
  color: #DC2626;
}

.btn-icon-header {
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  border: 1px solid var(--border-subtle);
  background: var(--bg-hover, #F8FAFC);
  color: var(--text-muted, #64748B);
  cursor: pointer;
  font-size: 0.82rem;
  transition: all 0.15s ease;
}

.btn-icon-header:hover {
  background: var(--slate-100, #F1F5F9);
  color: var(--slate-800);
  transform: translateY(-1px);
}

.btn-icon-header.active {
  background: var(--teal-50, #ECFDF5);
  border-color: var(--teal-300, #6EE7B7);
  color: var(--brand-petrol, #003B46);
}

.chat-container.collapsed {
  display: none !important;
}

/* Collapsible Chat Accordion Bar */
.chat-accordion-bar {
  display: none;
  padding: 6px 14px;
  background: #F8FAFC;
  border-top: 1px solid var(--border-subtle);
  border-bottom: 1px solid var(--border-subtle);
}

.panel-interview.has-graph-selection .chat-accordion-bar {
  display: flex;
  align-items: center;
}

.chat-accordion-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: transparent;
  border: none;
  cursor: pointer;
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--text-secondary);
  padding: 2px 0;
  outline: none;
}

.chat-accordion-btn:hover {
  color: var(--brand-petrol);
}

.chat-accordion-btn .accordion-title {
  font-weight: 600;
}

.chat-accordion-btn .accordion-count-badge {
  background: #E2E8F0;
  color: #334155;
  border-radius: 10px;
  padding: 1px 7px;
  font-size: 0.7rem;
  font-weight: 700;
  margin-left: auto;
  margin-right: 8px;
}

.chat-accordion-btn .accordion-arrow {
  font-size: 0.8rem;
  color: var(--text-muted);
}

/* In Graph Selection Mode: Dock takes focus, Chat is collapsed by default */
.panel-interview.has-graph-selection .agent-context-dock {
  flex: 1;
  max-height: calc(100% - 120px);
  overflow-y: auto;
}

.panel-interview.has-graph-selection .chat-container:not(.expanded) {
  display: none !important;
}

.panel-interview.has-graph-selection .chat-container.expanded {
  max-height: 220px;
  flex: none;
  border-bottom: 1px solid var(--border-subtle);
}

/* Direction Swap Button */
.dock-btn-swap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 1px solid var(--border-subtle);
  background: #FFFFFF;
  color: var(--brand-petrol);
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  margin: 0 4px;
  transition: all 0.15s ease;
  vertical-align: middle;
}

.dock-btn-swap:hover {
  background: var(--brand-green-light);
  border-color: var(--brand-green);
  color: #065F46;
  transform: scale(1.1);
}

/* Status Feedback Banner */
.dock-feedback-banner {
  padding: 6px 12px;
  margin-bottom: 8px;
  border-radius: 8px;
  font-size: 0.78rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 6px;
  background: #ECFDF5;
  border: 1px solid #A7F3D0;
  color: #065F46;
  animation: fadeIn 0.2s ease-out;
  transition: opacity 0.3s ease;
}

.dock-feedback-banner.error {
  background: #FEF2F2;
  border-color: #FECACA;
  color: #991B1B;
}

.dock-feedback-banner.fade-out {
  opacity: 0;
}

.floating-resize-corner {
  position: absolute;
  bottom: 2px;
  right: 4px;
  font-size: 11px;
  line-height: 1;
  color: var(--border-strong);
  pointer-events: none;
  -webkit-user-select: none;
  user-select: none;
}

/* Dedicated Knowledge Steward Trigger Button */
.graph-actions-group {
  display: flex;
  align-items: center;
  gap: 8px;
}

.btn-interview-trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  font-family: var(--font-main);
  font-size: 0.82rem;
  font-weight: 600;
  border-radius: 20px;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  color: var(--text-secondary);
  box-shadow: var(--shadow-sm);
  outline: none;
}

.btn-interview-trigger:hover {
  background: var(--bg-hover);
  color: var(--brand-petrol);
  border-color: var(--border-strong);
  transform: translateY(-1px);
}

.btn-interview-trigger.active {
  background: var(--brand-petrol);
  border-color: var(--brand-petrol);
  color: #FFFFFF;
  box-shadow: 0 2px 8px rgba(0, 59, 70, 0.25);
}

.btn-interview-trigger.active:hover {
  background: var(--brand-petrol-hover);
  border-color: var(--brand-petrol-hover);
  color: #FFFFFF;
}

/* Global Navbar Trigger Button */
.btn-interview-trigger-navbar {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  font-family: var(--font-main);
  font-size: 0.82rem;
  font-weight: 600;
  border-radius: 20px;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  color: var(--text-secondary);
  box-shadow: var(--shadow-sm);
  outline: none;
}

.btn-interview-trigger-navbar:hover {
  background: var(--bg-hover);
  color: var(--brand-petrol);
  border-color: var(--border-strong);
  transform: translateY(-1px);
}

.btn-interview-trigger-navbar.active {
  background: var(--brand-petrol);
  border-color: var(--brand-petrol);
  color: #FFFFFF;
  box-shadow: 0 2px 8px rgba(0, 59, 70, 0.25);
}

.btn-interview-trigger-navbar.active:hover {
  background: var(--brand-petrol-hover);
  border-color: var(--brand-petrol-hover);
  color: #FFFFFF;
}

.trigger-steward-icon {
  font-size: 1rem;
  line-height: 1;
}

.trigger-steward-text {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.trigger-pulse-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background-color: var(--brand-green);
  box-shadow: 0 0 6px var(--brand-green);
  transition: all 0.2s;
}

.btn-interview-trigger:not(.active) .trigger-pulse-dot {
  background-color: #94A3B8;
  box-shadow: none;
}

.btn-toggle-sidebar {
  transition: all 0.2s ease;
  position: relative;
}

/* ==========================================================================
   Dynamic Agent Context Dock & Theme Details (Clean Light Theme)
   ========================================================================== */
.agent-context-dock {
  background: #F8FAFC;
  border-bottom: 1px solid var(--border-subtle);
  padding: 8px 14px;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

/* Slim Idle Bar */
.dock-idle-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.76rem;
  padding: 2px 0;
}

.dock-idle-status {
  display: flex;
  align-items: center;
  gap: 6px;
}

.dock-idle-label {
  font-weight: 700;
  color: var(--brand-petrol);
}

.dock-idle-sep {
  color: var(--border-strong);
}

.dock-idle-domain {
  color: var(--text-secondary);
  font-weight: 600;
}

.dock-idle-tip {
  font-size: 0.72rem;
  color: var(--text-muted);
}

/* Spontane Schnellerfassung (Ausbruch aus dem Read-Only-Gefühl) */
.dock-quick-create-card {
  margin-top: 8px;
  padding: 8px 10px;
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: 8px;
  box-shadow: var(--shadow-sm);
}

.dock-quick-create-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--brand-petrol);
  margin-bottom: 6px;
}

.dock-quick-hint {
  font-size: 0.68rem;
  font-weight: 500;
  color: var(--text-muted);
}

.dock-quick-input-group {
  display: flex;
  gap: 6px;
  margin-bottom: 6px;
}

.dock-quick-input {
  flex: 1;
  background: #F8FAFC;
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
  padding: 5px 9px;
  font-size: 0.76rem;
  color: var(--text-primary);
  outline: none;
  transition: all 0.15s;
}

.dock-quick-input:focus {
  background: #FFFFFF;
  border-color: var(--brand-petrol);
  box-shadow: 0 0 0 2px rgba(0, 59, 70, 0.12);
}

.dock-quick-btn {
  padding: 5px 12px;
  font-size: 0.74rem;
  font-weight: 700;
  background: var(--brand-green);
  color: #FFFFFF;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color 0.15s;
}

.dock-quick-btn:hover {
  background: #059669;
}

.dock-quick-templates {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.dock-template-chip {
  padding: 3px 8px;
  font-size: 0.7rem;
  font-weight: 600;
  border-radius: 10px;
  cursor: pointer;
  background: #F1F5F9;
  color: var(--text-secondary);
  border: 1px solid transparent;
  transition: all 0.15s;
}

.dock-template-chip:hover {
  background: var(--brand-green-light);
  color: #065F46;
  border-color: var(--brand-green-border);
}

.dock-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}

.dock-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 12px;
}

.dock-badge-idle {
  background: var(--color-blue-light);
  color: var(--color-blue);
  border: 1px solid #BFDBFE;
}

.dock-badge-edge {
  background: var(--brand-green-light);
  color: #065F46;
  border: 1px solid var(--brand-green-border);
}

.dock-badge-node {
  background: var(--color-blue-light);
  color: #1E40AF;
  border: 1px solid #BFDBFE;
}

.dock-badge-multi {
  background: var(--color-amber-light);
  color: #92400E;
  border: 1px solid var(--color-amber-border);
}

.dock-domain-tag {
  font-size: 0.7rem;
  color: var(--text-muted);
  font-weight: 500;
}

.dock-details {
  font-size: 0.8rem;
  color: var(--text-secondary);
  margin-bottom: 6px;
  line-height: 1.35;
}

.dock-node-title {
  color: var(--brand-petrol);
  font-size: 0.86rem;
}

.dock-node-sub {
  font-size: 0.72rem;
  color: var(--text-muted);
  margin-top: 2px;
}

.dock-idle-hint {
  font-size: 0.76rem;
  color: var(--text-muted);
  line-height: 1.4;
}

.dock-relation-chain {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  font-size: 0.78rem;
  padding: 5px 8px;
  border-radius: 6px;
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  margin-bottom: 6px;
}

.dock-relation-node {
  color: var(--brand-petrol);
  font-weight: 700;
  max-width: 130px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dock-relation-pred {
  color: #047857;
  background: #ECFDF5;
  padding: 2px 6px;
  border-radius: 4px;
  border: 1px solid #A7F3D0;
  font-weight: 700;
}

.dock-relation-arrow {
  color: var(--text-muted);
  font-size: 0.72rem;
}

.dock-actions-label {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  margin-bottom: 5px;
}

.dock-chips-row {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 6px;
}

.dock-action-chip {
  padding: 3px 9px;
  font-size: 0.74rem;
  font-weight: 600;
  border-radius: 12px;
  cursor: pointer;
  background: #FFFFFF;
  color: var(--text-secondary);
  border: 1px solid var(--border-subtle);
  transition: all 0.15s ease;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.dock-action-chip:hover {
  background: var(--brand-green-light);
  border-color: var(--brand-green);
  color: #065F46;
  transform: translateY(-1px);
}

.dock-action-chip.active {
  background: var(--brand-green);
  border-color: var(--brand-green);
  color: #FFFFFF;
  box-shadow: var(--shadow-sm);
}

.dock-quick-actions {
  display: flex;
  gap: 6px;
  margin-bottom: 6px;
}

.dock-btn-secondary {
  padding: 4px 9px;
  font-size: 0.74rem;
  font-weight: 600;
  border-radius: 6px;
  cursor: pointer;
  background: #FFFFFF;
  color: var(--text-secondary);
  border: 1px solid var(--border-subtle);
  transition: all 0.15s;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.dock-btn-secondary:hover {
  background: var(--bg-hover);
  color: var(--text-primary);
}

/* Search input in dock */
.dock-search-box {
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
}

.dock-search-input {
  flex: 1;
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
  padding: 5px 9px;
  font-size: 0.76rem;
  color: var(--text-primary);
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.dock-search-input:focus {
  border-color: var(--brand-petrol);
  box-shadow: 0 0 0 2px rgba(0, 59, 70, 0.15);
}

.dock-search-btn {
  padding: 5px 11px;
  font-size: 0.76rem;
  font-weight: 600;
  border-radius: 6px;
  background: var(--brand-petrol);
  color: #FFFFFF;
  border: none;
  cursor: pointer;
  transition: background-color 0.15s;
  white-space: nowrap;
}

.dock-search-btn:hover {
  background: var(--brand-petrol-hover);
}

.dock-search-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: 8px;
  max-height: 180px;
  overflow-y: auto;
  z-index: 600;
  box-shadow: var(--shadow-lg);
}

.dock-search-item {
  padding: 6px 10px;
  font-size: 0.76rem;
  color: var(--text-primary);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--border-subtle);
}

.dock-search-item:hover {
  background: var(--brand-green-light);
  color: #065F46;
}

/* Chat Container & Messages (Clean Light Theme) */
.panel-interview .chat-container {
  flex: 1;
  overflow-y: auto;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: #FFFFFF;
}

.panel-interview .message-bubble {
  max-width: 88%;
  padding: 10px 14px;
  border-radius: 12px;
  font-size: 0.82rem;
  line-height: 1.45;
  position: relative;
  word-break: break-word;
}

.panel-interview .msg-agent {
  align-self: flex-start;
  background-color: #F8FAFC;
  border: 1px solid var(--border-subtle);
  color: var(--text-primary);
  border-bottom-left-radius: 3px;
  box-shadow: var(--shadow-sm);
}

.panel-interview .msg-agent strong {
  color: var(--brand-petrol);
  font-weight: 700;
}

.panel-interview .msg-user {
  align-self: flex-end;
  background: linear-gradient(135deg, var(--brand-petrol) 0%, #07575B 100%);
  color: #FFFFFF;
  border-bottom-right-radius: 3px;
  box-shadow: 0 2px 8px rgba(0, 59, 70, 0.2);
}

.panel-interview .msg-timestamp {
  font-size: 0.68rem;
  margin-top: 4px;
  display: block;
  text-align: right;
  opacity: 0.7;
}

.panel-interview .msg-user .msg-timestamp {
  color: rgba(255, 255, 255, 0.8);
}

.panel-interview .msg-agent .msg-timestamp {
  color: var(--text-muted);
}

/* Guided Reply Chips (Pill styling) */
.panel-interview .guided-replies-bar {
  background: #F8FAFC;
  border-top: 1px solid var(--border-subtle);
  padding: 8px 14px;
  flex-shrink: 0;
}

.panel-interview .guided-replies-label {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  margin-bottom: 6px;
}

.panel-interview .guided-replies-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.panel-interview .guided-reply-chip {
  padding: 5px 12px;
  font-size: 0.76rem;
  font-weight: 600;
  border-radius: 14px;
  cursor: pointer;
  background: #FFFFFF;
  color: var(--brand-petrol);
  border: 1px solid var(--border-subtle);
  transition: all 0.15s ease;
  line-height: 1.3;
  text-align: left;
}

.panel-interview .guided-reply-chip:hover {
  background: var(--brand-green-light);
  border-color: var(--brand-green);
  color: #065F46;
  transform: translateY(-1px);
}

/* Chat Input Form */
.panel-interview .chat-input-form {
  background: #FFFFFF;
  border-top: 1px solid var(--border-subtle);
  padding: 10px 14px;
  flex-shrink: 0;
}

.panel-interview .input-wrapper {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #F8FAFC;
  border: 1px solid var(--border-subtle);
  border-radius: 8px;
  padding: 4px 6px 4px 10px;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.panel-interview .input-wrapper:focus-within {
  border-color: var(--brand-petrol);
  background: #FFFFFF;
  box-shadow: 0 0 0 2px rgba(0, 59, 70, 0.12);
}

.panel-interview #chatInput {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  font-family: var(--font-main);
  font-size: 0.8rem;
  color: var(--text-primary);
  resize: none;
  max-height: 60px;
}

.panel-interview #chatInput::placeholder {
  color: var(--text-muted);
}

.btn-audio-record-placeholder {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  background: #F1F5F9;
  border: 1px dashed #CBD5E1;
  color: #64748B;
  cursor: help;
  font-size: 0.95rem;
  transition: all 0.15s ease;
  flex-shrink: 0;
}

.btn-audio-record-placeholder:hover {
  background: #E2E8F0;
  border-color: #94A3B8;
  color: var(--brand-petrol);
}

.panel-interview .btn-send {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  background: var(--brand-petrol);
  color: #FFFFFF;
  border: none;
  cursor: pointer;
  transition: background-color 0.15s ease;
  flex-shrink: 0;
}

.panel-interview .btn-send:hover {
  background: var(--brand-petrol-hover);
}

.panel-interview .input-hint {
  font-size: 0.68rem;
  color: var(--text-muted);
  margin-top: 5px;
  text-align: center;
}

.tab-panel { display: none; }
.tab-panel.active { display: grid; }
.tasks-layout.tab-panel.active,
.data-layout.tab-panel.active,
.turtle-layout.tab-panel.active,
.domains-layout.tab-panel.active,
.search-layout.tab-panel.active,
.rag-layout.tab-panel.active,
.assets-layout.tab-panel.active { display: flex; flex-direction: column; flex: 1; min-height: 0; }

.panel {
  display: flex;
  flex-direction: column;
  background-color: var(--bg-panel);
  height: 100%;
  overflow: hidden;
}

.panel-graph {
  width: 100%;
  height: 100%;
  position: relative;
  background-color: #FAFAFA;
}

.panel-workflows {
  border-left: 1px solid var(--border-subtle);
}

.panel-header {
  padding: 16px 20px;
  border-bottom: 1px solid var(--border-subtle);
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: var(--bg-panel);
}

.panel-title {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
}

/* ==========================================================================
   Column 1: Interview Agent Styles
   ========================================================================== */
.agent-profile {
  display: flex;
  align-items: center;
  gap: 12px;
}

.agent-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--brand-petrol), #00A86B);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
}

.agent-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.72rem;
  color: var(--brand-green);
  font-weight: 600;
}

.pulse-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--brand-green);
  box-shadow: 0 0 0 0 rgba(0, 168, 107, 0.7);
  animation: pulse 1.8s infinite;
}

@keyframes pulse {
  0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(0, 168, 107, 0.7); }
  70% { transform: scale(1); box-shadow: 0 0 0 6px rgba(0, 168, 107, 0); }
  100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(0, 168, 107, 0); }
}

.quick-prompts-bar {
  padding: 10px 16px;
  background-color: var(--bg-subtle);
  border-bottom: 1px solid var(--border-subtle);
}

.quick-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--text-muted);
  letter-spacing: 0.04em;
  margin-bottom: 6px;
}

.chips-row {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.chip-btn {
  white-space: nowrap;
  padding: 4px 10px;
  font-size: 0.75rem;
  font-weight: 600;
  background-color: #FFFFFF;
  color: var(--brand-petrol);
  border: 1px solid var(--border-subtle);
  border-radius: 16px;
  cursor: pointer;
  transition: all 0.15s;
}

.chip-btn:hover {
  background-color: var(--brand-green-light);
  border-color: var(--brand-green-border);
  color: var(--brand-green);
}

/* Chat container */
.chat-container {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.message-bubble {
  max-width: 90%;
  padding: 12px 16px;
  border-radius: var(--radius-md);
  font-size: 0.85rem;
  line-height: 1.5;
  animation: fadeIn 0.25s ease-out;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

.msg-agent {
  align-self: flex-start;
  background-color: #FFFFFF;
  border: 1px solid var(--border-subtle);
  box-shadow: var(--shadow-sm);
  color: var(--text-primary);
  border-bottom-left-radius: 2px;
}

.msg-agent strong {
  color: var(--brand-petrol);
}

.msg-user {
  align-self: flex-end;
  background: linear-gradient(135deg, var(--brand-petrol), #0A4F5C);
  color: #FFFFFF;
  border-bottom-right-radius: 2px;
}

.msg-timestamp {
  display: block;
  font-size: 0.68rem;
  color: var(--text-muted);
  margin-top: 6px;
  text-align: right;
}

.msg-user .msg-timestamp {
  color: rgba(255, 255, 255, 0.7);
}

/* Proactive Suggestions Drawer */
.suggestions-drawer {
  background: linear-gradient(to bottom, #FFFBEB, #FEF3C7);
  border-top: 1px solid #FDE68A;
  border-bottom: 1px solid #FDE68A;
  padding: 12px 16px;
}

.suggestions-header {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
}

.suggestion-icon {
  font-size: 1rem;
}

.suggestion-title {
  font-size: 0.78rem;
  font-weight: 700;
  color: #92400E;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.suggestion-card {
  background-color: #FFFFFF;
  border: 1px solid #FCD34D;
  border-radius: var(--radius-sm);
  padding: 10px 12px;
  margin-bottom: 6px;
  box-shadow: var(--shadow-sm);
}

.suggestion-card-title {
  font-size: 0.82rem;
  font-weight: 700;
  color: #78350F;
  margin-bottom: 4px;
}

.suggestion-card-desc {
  font-size: 0.76rem;
  color: #451A03;
  margin-bottom: 8px;
}

.btn-suggestion-action {
  width: 100%;
  padding: 6px 10px;
  background-color: #F59E0B;
  color: #FFFFFF;
  font-weight: 600;
  font-size: 0.78rem;
  border: none;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background-color 0.15s;
}

.btn-suggestion-action:hover {
  background-color: #D97706;
}

/* Guided Reply Chips: contextual, clickable answer suggestions */
.guided-replies-bar {
  padding: 10px 16px;
  background-color: var(--brand-green-light);
  border-top: 1px solid var(--brand-green-border);
}

.guided-replies-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  color: #065F46;
  letter-spacing: 0.04em;
  margin-bottom: 6px;
}

.guided-replies-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.guided-reply-chip {
  padding: 5px 12px;
  font-size: 0.78rem;
  font-weight: 600;
  background-color: #FFFFFF;
  color: var(--brand-green);
  border: 1px solid var(--brand-green-border);
  border-radius: 16px;
  cursor: pointer;
  transition: all 0.15s;
}

.guided-reply-chip:hover {
  background-color: var(--brand-green);
  border-color: var(--brand-green);
  color: #FFFFFF;
}

/* Chat Input Area */
.chat-input-form {
  padding: 14px 16px;
  background-color: var(--bg-panel);
  border-top: 1px solid var(--border-subtle);
}

.input-wrapper {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  background-color: var(--bg-subtle);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding: 6px 8px;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.input-wrapper:focus-within {
  border-color: var(--border-focus);
  background-color: #FFFFFF;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

#chatInput {
  flex: 1;
  border: none;
  background: transparent;
  outline: none;
  font-family: var(--font-main);
  font-size: 0.85rem;
  color: var(--text-primary);
  resize: none;
  max-height: 100px;
  padding: 4px 6px;
}

.btn-send {
  width: 34px;
  height: 34px;
  border-radius: var(--radius-sm);
  background-color: var(--brand-petrol);
  color: #FFFFFF;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 0.15s;
}

.btn-send:hover {
  background-color: var(--brand-petrol-hover);
}

.input-hint {
  font-size: 0.7rem;
  color: var(--text-muted);
  margin-top: 6px;
  text-align: center;
}

/* ==========================================================================
   Column 2: Center Graph Panel Styles
   ========================================================================== */
.graph-toolbar {
  height: 38px;
  min-height: 38px;
  background-color: #F8FAFC;
  border-bottom: 1px solid var(--border-subtle);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 14px;
  z-index: 10;
  gap: 10px;
  flex-wrap: nowrap;
  box-sizing: border-box;
}

.graph-filters {
  display: flex;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
  flex-wrap: nowrap;
  scrollbar-width: none;
  -ms-overflow-style: none;
  flex-shrink: 0;
}
.graph-filters::-webkit-scrollbar {
  display: none;
}

.filter-label {
  font-size: 0.72rem;
  font-weight: 600;
  color: #64748B;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  margin-right: 2px;
  white-space: nowrap;
}

.filter-pill {
  height: 26px;
  padding: 0 9px;
  border-radius: 6px;
  background-color: #FFFFFF;
  border: 1px solid #CBD5E1;
  font-size: 0.73rem;
  font-weight: 500;
  color: #334155;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: all 0.15s;
  box-sizing: border-box;
  white-space: nowrap;
}

.filter-pill:hover {
  background-color: #F1F5F9;
  border-color: #94A3B8;
}

.filter-pill.active {
  background-color: #E0F2FE;
  border-color: #38BDF8;
  color: #0369A1;
  font-weight: 600;
}

.pill-staging.active {
  background-color: #FEF3C7;
  border-color: #FCD34D;
  color: #92400E;
  font-weight: 600;
}

.graph-filters-dynamic {
  display: none;
}

.graph-filters .status-pill-success {
  height: 24px;
  padding: 0 8px;
  border-radius: 5px;
  background: #DCFCE7;
  border: 1px solid #86EFAC;
  color: #15803D;
  font-size: 0.70rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}

.filter-pill-add-knowledge {
  background: #F0F9FF !important;
  border-color: #BAE6FD !important;
  color: #0284C7 !important;
  font-weight: 600 !important;
}

.filter-pill-add-knowledge:hover {
  background: #E0F2FE !important;
  border-color: #7DD3FC !important;
}

.graph-search-wrapper {
  position: relative;
  flex: 1 1 auto;
  max-width: 280px;
  min-width: 140px;
  margin: 0 8px;
}

.graph-search-box {
  height: 26px;
  display: flex;
  align-items: center;
  gap: 5px;
  background-color: #FFFFFF;
  border: 1px solid #CBD5E1;
  border-radius: 6px;
  padding: 0 8px;
  color: var(--text-muted);
  transition: border-color 0.2s, box-shadow 0.2s;
  box-sizing: border-box;
}

.graph-search-box:focus-within {
  border-color: #0284C7;
  background-color: #FFFFFF;
  box-shadow: 0 0 0 2px rgba(2, 132, 199, 0.15);
}

.graph-search-input {
  flex: 1;
  min-width: 0;
  border: none;
  background: transparent;
  outline: none;
  font-family: var(--font-main);
  font-size: 0.74rem;
  color: var(--text-primary);
  height: 100%;
}

.graph-search-hops {
  border: none;
  background: transparent;
  outline: none;
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--text-muted);
  cursor: pointer;
  padding: 0;
}

.btn-clear-search {
  border: none;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 0.78rem;
  line-height: 1;
  padding: 0 2px;
}

.btn-clear-search:hover {
  color: var(--color-blue);
}

.graph-search-results {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background-color: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md, 0 8px 20px rgba(15, 23, 42, 0.12));
  max-height: 260px;
  overflow-y: auto;
  z-index: 20;
}

.graph-search-result-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 12px;
  font-size: 0.8rem;
  color: var(--text-primary);
  cursor: pointer;
  border-bottom: 1px solid var(--border-subtle);
}

.graph-search-result-item:last-child {
  border-bottom: none;
}

.graph-search-result-item:hover {
  background-color: var(--bg-subtle);
}

.graph-search-result-type {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--text-muted);
}

.graph-search-empty {
  padding: 10px 12px;
  font-size: 0.78rem;
  color: var(--text-muted);
}

.graph-zoom-controls {
  display: flex;
  align-items: center;
  gap: 3px;
  flex-shrink: 0;
}

.graph-zoom-controls .btn-icon {
  width: 26px;
  height: 26px;
  border-radius: 5px;
  font-size: 0.74rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #FFFFFF;
  border: 1px solid #CBD5E1;
  color: #475569;
  cursor: pointer;
  transition: all 0.15s;
  box-sizing: border-box;
}

.graph-zoom-controls .btn-icon:hover {
  background: #F1F5F9;
  border-color: #94A3B8;
  color: #0F172A;
}

.graph-zoom-controls .btn-icon.active {
  background: #E0F2FE;
  border-color: #38BDF8;
  color: #0284C7;
}

.graph-canvas-container {
  flex: 1;
  width: 100%;
  height: calc(100% - 38px);
  position: relative;
  background: radial-gradient(circle at 50% 50%, #FFFFFF 0%, #F1F5F9 100%);
}

/* ==========================================================================
   Marquee Selection Rectangle (Ctrl + Left Click Drag) & Banner
   ========================================================================== */
.graph-selection-marquee {
  position: absolute;
  pointer-events: none;
  border: 2px dashed #00A86B !important;
  background-color: rgba(0, 168, 107, 0.18) !important;
  box-shadow: 0 0 16px rgba(0, 168, 107, 0.4), inset 0 0 12px rgba(0, 168, 107, 0.12) !important;
  border-radius: 4px;
  z-index: 9999 !important;
  box-sizing: border-box;
}

.graph-selection-banner {
  position: absolute;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 101;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 14px;
  background: rgba(255, 255, 255, 0.96);
  border: 1.5px solid #00A86B;
  border-radius: 24px;
  box-shadow: 0 4px 16px rgba(0, 59, 70, 0.12), 0 0 10px rgba(0, 168, 107, 0.25);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  font-size: 0.82rem;
  font-weight: 600;
  color: #003B46;
  animation: fadeInBanner 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes fadeInBanner {
  from {
    opacity: 0;
    transform: translate(-50%, -6px);
  }
  to {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}

.selection-banner-icon {
  font-size: 1rem;
}

.btn-clear-selection {
  background: #F1F5F9;
  border: none;
  border-radius: 50%;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 0.72rem;
  color: #64748B;
  transition: all 0.15s ease;
}

.btn-clear-selection:hover {
  background: #E2E8F0;
  color: #0F172A;
}

.btn-selection-ai {
  background: linear-gradient(135deg, #EEF2FF 0%, #E0E7FF 100%);
  border: 1px solid #818CF8;
  color: #4338CA;
  font-size: 0.76rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 14px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  box-shadow: 0 1px 4px rgba(99, 102, 241, 0.2);
  transition: all 0.15s ease-in-out;
  white-space: nowrap;
}

.btn-selection-ai:hover {
  background: linear-gradient(135deg, #E0E7FF 0%, #C7D2FE 100%);
  color: #312E81;
  border-color: #6366F1;
  box-shadow: 0 2px 8px rgba(99, 102, 241, 0.35);
  transform: translateY(-1px);
}

.subgraph-ai-card {
  border: 1.5px solid var(--border-subtle);
  border-radius: 8px;
  padding: 12px 14px;
  background: #FFFFFF;
  cursor: pointer;
  transition: all 0.15s ease-in-out;
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.subgraph-ai-card:hover {
  border-color: #6366F1;
  background: #F8FAFC;
  box-shadow: 0 4px 14px rgba(99, 102, 241, 0.12);
  transform: translateY(-1px);
}

.subgraph-ai-card-icon {
  font-size: 1.4rem;
  flex: 0 0 auto;
}

.subgraph-ai-card-content {
  flex: 1;
}

.subgraph-ai-card-title {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 3px;
}

.subgraph-ai-card-desc {
  font-size: 0.77rem;
  color: #64748B;
  line-height: 1.35;
}


.graph-legend {
  position: absolute;
  bottom: 18px;
  left: 20px;
  background-color: rgba(255, 255, 255, 0.92);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding: 10px 14px;
  box-shadow: var(--shadow-sm);
  display: flex;
  gap: 16px;
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--text-secondary);
}

.graph-size-warning {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  max-width: 90%;
  width: auto;
  display: none;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background-color: rgba(254, 243, 199, 0.96);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid #FCD34D;
  color: #92400E;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 8px 18px;
  border-radius: 24px;
  box-shadow: 0 4px 16px rgba(146, 64, 14, 0.15), 0 2px 6px rgba(0, 0, 0, 0.05);
  text-align: center;
  z-index: 100;
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  transition: opacity 0.25s ease, transform 0.25s ease;
  animation: slideUpWarning 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.graph-size-warning:hover {
  background-color: #FEF3C7;
  border-color: #F59E0B;
  box-shadow: 0 6px 20px rgba(146, 64, 14, 0.22);
}

.graph-size-warning.fade-out {
  opacity: 0;
  transform: translate(-50%, 8px);
  pointer-events: none;
}

.graph-size-warning .warning-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(146, 64, 14, 0.12);
  color: #92400E;
  font-size: 0.7rem;
  font-weight: 700;
  margin-left: 6px;
  transition: background 0.15s;
}

.graph-size-warning:hover .warning-close {
  background: rgba(146, 64, 14, 0.22);
}

@keyframes slideUpWarning {
  from {
    opacity: 0;
    transform: translate(-50%, 12px);
  }
  to {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}

.graph-node-tooltip {
  font-family: var(--font-main);
  font-size: 0.8rem;
  line-height: 1.5;
  color: var(--text-primary);
  max-width: 260px;
}

.node-context-menu {
  position: absolute;
  background-color: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.15), 0 8px 10px -6px rgba(15, 23, 42, 0.1);
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  z-index: 30;
  min-width: 230px;
  max-width: 300px;
  animation: contextMenuPop 0.12s ease-out;
}

@keyframes contextMenuPop {
  from {
    opacity: 0;
    transform: scale(0.96) translateY(-2px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.node-menu-edit-container {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 4px 4px 6px 4px;
}

.node-menu-edit-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.node-menu-title {
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--brand-petrol);
  display: flex;
  align-items: center;
  gap: 4px;
}

.node-menu-badge {
  font-size: 0.68rem;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 4px;
  white-space: nowrap;
}

.badge-edge {
  background-color: #F1F5F9;
  color: #475569;
  border: 1px solid #CBD5E1;
}

.node-menu-input-wrapper {
  display: flex;
  align-items: center;
  gap: 6px;
}

.node-menu-input {
  flex: 1;
  min-width: 0;
  padding: 6px 9px;
  font-family: var(--font-main);
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--text-primary);
  background-color: #F8FAFC;
  border: 1.5px solid var(--border-strong);
  border-radius: var(--radius-sm);
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.node-menu-input:focus {
  background-color: #FFFFFF;
  border-color: var(--border-focus);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.node-menu-save-btn {
  padding: 6px 10px;
  font-family: var(--font-main);
  font-size: 0.78rem;
  font-weight: 600;
  color: #FFFFFF;
  background-color: var(--brand-petrol);
  border: none;
  border-radius: var(--radius-sm);
  cursor: pointer;
  white-space: nowrap;
  transition: background-color 0.15s ease, transform 0.1s ease;
}

.node-menu-save-btn:hover:not(:disabled) {
  background-color: var(--brand-petrol-hover);
  transform: translateY(-1px);
}

.node-menu-save-btn:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

.node-menu-hint {
  font-size: 0.67rem;
  color: var(--text-muted);
  line-height: 1.2;
}

.node-menu-feedback {
  font-size: 0.72rem;
  font-weight: 600;
  padding: 3px 6px;
  border-radius: 4px;
}

.node-menu-feedback.success {
  background-color: var(--brand-green-light);
  color: #047857;
}

.node-menu-feedback.error {
  background-color: var(--color-danger-light);
  color: var(--color-danger);
}

.node-menu-divider {
  height: 1px;
  background-color: var(--border-subtle);
  margin: 3px 0 4px 0;
}

.node-context-menu-item {
  display: block;
  width: 100%;
  text-align: left;
  padding: 7px 10px;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-primary);
  background: transparent;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  white-space: nowrap;
}

.node-context-menu-item:hover {
  background-color: var(--bg-hover);
}

.legend-item {
  display: flex;
  align-items: center;
  gap: 6px;
}

.legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
}

.dot-class { background-color: var(--color-blue); }
.dot-instance { background-color: var(--brand-green); }
.dot-staging { 
  background-color: var(--color-amber);
  box-shadow: 0 0 6px var(--color-amber);
}
.dot-violation {
  background-color: #EF4444;
  box-shadow: 0 0 6px rgba(239, 68, 68, 0.9);
}

/* ==========================================================================
   Column 3: Die Abläufe & Governance Styles
   ========================================================================== */
.badge-stage {
  padding: 4px 10px;
  border-radius: 12px;
  background-color: var(--color-blue-light);
  color: var(--color-blue);
  font-size: 0.74rem;
  font-weight: 700;
}

.stepper-pipeline {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px 20px;
  background-color: var(--bg-subtle);
  border-bottom: 1px solid var(--border-subtle);
}

.step-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 12px;
  border-radius: var(--radius-sm);
  background-color: #FFFFFF;
  border: 1px solid var(--border-subtle);
  transition: all 0.2s;
}

.step-card[data-jump-tab] {
  cursor: pointer;
}

.step-card[data-jump-tab]:hover {
  border-color: var(--border-focus);
  box-shadow: var(--shadow-sm);
}

.step-card.completed {
  border-color: var(--brand-green-border);
  background-color: var(--brand-green-light);
}

.step-card.completed .step-num {
  background-color: var(--brand-green);
  color: #FFFFFF;
}

.step-card.active {
  border-color: #93C5FD;
  background-color: var(--color-blue-light);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.step-card.active .step-num {
  background-color: var(--color-blue);
  color: #FFFFFF;
}

.step-num {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background-color: #E2E8F0;
  color: var(--text-secondary);
  font-size: 0.75rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.step-content {
  display: flex;
  flex-direction: column;
}

.step-title {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--text-primary);
}

.step-desc {
  font-size: 0.7rem;
  color: var(--text-muted);
}

/* Staging Proposals Area */
.staging-section {
  padding: 16px 20px;
  border-bottom: 1px solid var(--border-subtle);
  max-height: 38%;
  display: flex;
  flex-direction: column;
}

.staging-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.staging-header h3 {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--text-primary);
}

.count-badge {
  padding: 2px 8px;
  border-radius: 12px;
  background-color: var(--color-amber-light);
  border: 1px solid var(--color-amber-border);
  color: #B45309;
  font-size: 0.72rem;
  font-weight: 700;
}

.proposals-list {
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-right: 4px;
}

.proposal-item {
  background-color: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-left: 4px solid var(--color-amber);
  border-radius: var(--radius-sm);
  padding: 10px 12px;
  box-shadow: var(--shadow-sm);
}

.proposal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 4px;
}

.prop-badge {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  color: #B45309;
}

.prop-triple {
  font-family: monospace;
  font-size: 0.78rem;
  color: var(--text-primary);
  margin-bottom: 4px;
  background-color: var(--bg-subtle);
  padding: 4px 6px;
  border-radius: 4px;
}

.prop-shacl-status {
  font-size: 0.72rem;
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 4px;
}

.prop-shacl-pass {
  color: #059669;
}

.prop-shacl-warn {
  color: #D97706;
  font-weight: 600;
}

.staging-action-bar {
  margin-top: 12px;
  display: flex;
  gap: 8px;
}

.empty-state {
  padding: 20px;
  text-align: center;
  color: var(--text-muted);
}

.empty-state p {
  font-size: 0.8rem;
  font-weight: 600;
  margin: 6px 0 2px 0;
  color: var(--text-secondary);
}

.empty-state span {
  font-size: 0.72rem;
}

/* Inspector Area */
.inspector-section {
  flex: 1;
  padding: 16px 20px;
  overflow-y: auto;
}

.inspector-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.inspector-header h3 {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--text-primary);
}

.inspector-id {
  font-family: monospace;
  font-size: 0.72rem;
  color: var(--text-muted);
}

.inspector-card {
  background-color: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-sm);
  padding: 12px;
  font-size: 0.8rem;
}

.ins-row {
  margin-bottom: 8px;
}

.ins-label {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 2px;
}

.ins-value {
  color: var(--text-primary);
  font-weight: 500;
}

.ins-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.72rem;
  font-weight: 700;
}

.badge-tbox {
  background-color: var(--color-blue-light);
  color: var(--color-blue);
}

.badge-abox {
  background-color: var(--brand-green-light);
  color: var(--brand-green);
}

.badge-stg {
  background-color: var(--color-amber-light);
  color: var(--color-amber);
}

/* ==========================================================================
   Entity Edit Modal (Unified Bearbeitungsmaske) & Status Styles
   ========================================================================== */
#shaclStatusPill.cursor-pointer {
  cursor: pointer !important;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

#shaclStatusPill.cursor-pointer:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}

.modal-dialog-lg {
  max-width: 820px;
}

#entityEditModalDialog {
  resize: both !important;
  overflow: hidden !important;
  min-width: 480px !important;
  min-height: 420px !important;
}

.shape-badge-pill {
  transition: all 0.15s ease;
}

.shape-badge-pill:hover {
  background: #DCFCE7 !important;
  border-color: #86EFAC !important;
}

.attr-edit-row input:focus {
  border-color: var(--brand-petrol, #003B46);
  outline: none;
  box-shadow: 0 0 0 2px rgba(0, 59, 70, 0.15);
}
.modal-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(15, 23, 42, 0.4);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}

.modal-dialog {
  background-color: #FFFFFF;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  width: 640px;
  max-width: 90vw;
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--border-subtle);
  transition: width 0.2s ease, max-width 0.2s ease;
}

.modal-dialog.modal-lg {
  width: 900px;
  min-width: 680px;
  max-width: 95vw;
  min-height: 580px;
  max-height: 90vh;
}

/* Reusable Draggable & Resizable Modal Enhancements */
.modal-dialog.is-draggable {
  position: relative;
}

.modal-dialog.is-draggable .modal-header {
  cursor: grab;
  -webkit-user-select: none;
  user-select: none;
}

.modal-dialog.is-dragging {
  -webkit-user-select: none;
  user-select: none;
  opacity: 0.98;
}

.modal-dialog.is-dragging .modal-header {
  cursor: grabbing !important;
}

.modal-dialog.is-resizable {
  min-width: 480px;
  min-height: 400px;
}

.modal-resize-handle {
  position: absolute;
  right: 2px;
  bottom: 2px;
  width: 14px;
  height: 14px;
  cursor: nwse-resize;
  background: linear-gradient(135deg, transparent 50%, #94A3B8 50%, #94A3B8 60%, transparent 60%, transparent 75%, #94A3B8 75%, #94A3B8 85%, transparent 85%);
  z-index: 50;
  opacity: 0.6;
  transition: opacity 0.15s ease;
}

.modal-resize-handle:hover {
  opacity: 1;
  background: linear-gradient(135deg, transparent 50%, #008779 50%, #008779 60%, transparent 60%, transparent 75%, #008779 75%, #008779 85%, transparent 85%);
}

/* ============================================================
   Unified In-App Alert, Protection & Confirmation Modals
   ============================================================ */
.modal-alert-box {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 18px 20px;
  border-radius: 12px;
  margin-bottom: 14px;
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
}

.modal-alert-box.alert-danger {
  background: linear-gradient(135deg, rgba(239, 68, 68, 0.08) 0%, rgba(220, 38, 38, 0.02) 100%);
  border: 1.5px solid rgba(239, 68, 68, 0.35);
  box-shadow: 0 4px 14px -2px rgba(239, 68, 68, 0.1);
}

.modal-alert-box.alert-warning {
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.08) 0%, rgba(217, 119, 6, 0.02) 100%);
  border: 1.5px solid rgba(245, 158, 11, 0.35);
  box-shadow: 0 4px 14px -2px rgba(245, 158, 11, 0.1);
}

.modal-alert-icon-wrapper {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
}

.modal-alert-box.alert-danger .modal-alert-icon-wrapper {
  background: rgba(239, 68, 68, 0.14);
  color: #DC2626;
  border: 1.5px solid rgba(239, 68, 68, 0.35);
  box-shadow: 0 0 12px rgba(239, 68, 68, 0.15);
}

.modal-alert-box.alert-warning .modal-alert-icon-wrapper {
  background: rgba(245, 158, 11, 0.14);
  color: #D97706;
  border: 1.5px solid rgba(245, 158, 11, 0.35);
  box-shadow: 0 0 12px rgba(245, 158, 11, 0.15);
}

.modal-alert-content {
  flex: 1;
  min-width: 0;
}

.modal-alert-title {
  font-size: 0.98rem;
  font-weight: 700;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
}

.modal-alert-box.alert-danger .modal-alert-title {
  color: #B91C1C;
}

.modal-alert-box.alert-warning .modal-alert-title {
  color: #B45309;
}

.modal-alert-desc {
  font-size: 0.86rem;
  line-height: 1.55;
  color: #334155;
  margin-bottom: 10px;
}

.modal-alert-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.modal-alert-badge.badge-danger {
  background: rgba(239, 68, 68, 0.12);
  color: #DC2626;
  border: 1px solid rgba(239, 68, 68, 0.25);
}

.modal-alert-badge.badge-warning {
  background: rgba(245, 158, 11, 0.12);
  color: #D97706;
  border: 1px solid rgba(245, 158, 11, 0.25);
}

.modal-alert-detail-card {
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  padding: 10px 14px;
  margin-top: 10px;
  font-size: 0.82rem;
  color: #475569;
}

.modal-alert-detail-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 4px 0;
  border-bottom: 1px solid #F1F5F9;
}

.modal-alert-detail-row:last-child {
  border-bottom: none;
}

.modal-alert-tip {
  margin-top: 10px;
  padding: 8px 12px;
  background: #F0FDF4;
  border: 1px solid #BBF7D0;
  border-radius: 8px;
  font-size: 0.81rem;
  color: #166534;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  line-height: 1.45;
}

/* Wizard File Subtabs & Assets Hub Table */
.wizard-file-subtabs-bar {
  display: flex;
  gap: 6px;
  border-bottom: 2px solid #E2E8F0;
  margin-bottom: 12px;
  background: #F8FAFC;
  padding: 4px 6px 0 6px;
  border-radius: 6px 6px 0 0;
}

.wizard-file-subtab {
  padding: 8px 16px;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  font-size: 0.84rem;
  font-weight: 600;
  color: #64748B;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: all 0.15s ease;
  border-radius: 4px 4px 0 0;
}

.wizard-file-subtab:hover {
  color: var(--brand-petrol, #008779);
  background: #EDF7F6;
}

.wizard-file-subtab.active {
  color: var(--brand-petrol, #008779);
  border-bottom-color: var(--brand-petrol, #008779);
  background: #FFFFFF;
  font-weight: 700;
}

.wizard-subpane {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

.modal-header {
  padding: 16px 20px;
  border-bottom: 1px solid var(--border-subtle);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.modal-header h3 {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 700;
}

.modal-close {
  background: none;
  border: none;
  font-size: 1.4rem;
  color: var(--text-muted);
  cursor: pointer;
}

.modal-body {
  padding: 20px;
  overflow-y: auto;
  font-size: 0.85rem;
  line-height: 1.5;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

.modal-footer {
  padding: 12px 20px;
  border-top: 1px solid var(--border-subtle);
  display: flex;
  justify-content: flex-end;
  background-color: var(--bg-subtle);
}

/* ============================================================
   Knowledge Graph Wizard – 3-Card Creation Dialog
   ============================================================ */

/* Choice Screen: the 3 big entry cards */
#wizardChoiceScreen {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

.wizard-choice-screen {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  padding: 8px 0 4px;
}

.wizard-choice-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 10px;
  padding: 22px 16px 18px;
  border: 2px solid var(--border-subtle);
  border-radius: 14px;
  background: #F8FAFC;
  cursor: pointer;
  transition: all 0.18s ease;
  position: relative;
  overflow: hidden;
}

.wizard-choice-card::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.18s ease;
  border-radius: 12px;
}

.wizard-choice-card:hover {
  border-color: #007A78;
  background: #F0FAFA;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 122, 120, 0.12);
}

.wizard-choice-card:hover::before {
  opacity: 1;
}

.wizard-choice-card.active {
  border-color: #007A78;
  background: linear-gradient(135deg, #E6F7F7 0%, #F0FAFA 100%);
  box-shadow: 0 4px 16px rgba(0, 122, 120, 0.18);
}

.wizard-choice-icon {
  font-size: 2.6rem;
  line-height: 1;
  display: block;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.08));
}

.wizard-choice-title {
  font-weight: 700;
  font-size: 0.9rem;
  color: #003B46;
  line-height: 1.2;
}

.wizard-choice-subtitle {
  font-size: 0.75rem;
  color: #64748B;
  line-height: 1.4;
}

.wizard-choice-badge {
  position: absolute;
  top: 8px;
  right: 8px;
  background: linear-gradient(135deg, #007A78, #00A86B);
  color: #fff;
  font-size: 0.63rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 999px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

/* Wizard step pane (content area for each of the 3 flows) */
.wizard-step-pane {
  display: flex;
  flex-direction: column;
  gap: 14px;
  animation: wizardFadeIn 0.22s ease;
}

@keyframes wizardFadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Back button row at top of wizard step */
.wizard-back-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border-subtle);
  margin-bottom: 4px;
}

.wizard-back-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
  padding: 5px 12px;
  font-size: 0.79rem;
  color: #475569;
  cursor: pointer;
  transition: all 0.14s ease;
}

.wizard-back-btn:hover {
  border-color: #007A78;
  color: #007A78;
  background: #F0FAFA;
}

.wizard-step-title {
  font-weight: 700;
  font-size: 0.94rem;
  color: #003B46;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Auto-fill badge shown on KI-populated fields */
.wizard-autofill-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.67rem;
  font-weight: 700;
  background: linear-gradient(135deg, #F0FDF4, #DCFCE7);
  color: #15803D;
  border: 1px solid #A3E635;
  border-radius: 999px;
  padding: 2px 8px;
  margin-left: 8px;
  vertical-align: middle;
  animation: autofillPop 0.3s cubic-bezier(0.34,1.56,0.64,1);
}

@keyframes autofillPop {
  from { transform: scale(0.7); opacity: 0; }
  to   { transform: scale(1); opacity: 1; }
}

/* Wrapper for a labelled field with optional autofill badge */
.wizard-field-header {
  display: flex;
  align-items: center;
  margin-bottom: 5px;
}

/* Template clone card in selection grid */
.wizard-template-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 220px;
  overflow-y: auto;
  padding-right: 4px;
}

.wizard-template-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border: 1.5px solid var(--border-subtle);
  border-radius: 8px;
  cursor: pointer;
  background: #FFFFFF;
  transition: all 0.15s ease;
}

.wizard-template-row:hover {
  border-color: #007A78;
  background: #F0FAFA;
}

.wizard-template-row.selected {
  border-color: #007A78;
  background: linear-gradient(90deg, #E6F7F7, #F0FAFA);
  box-shadow: 0 2px 8px rgba(0,122,120,0.1);
}

.wizard-template-icon {
  font-size: 1.6rem;
  flex-shrink: 0;
}

.wizard-template-name {
  font-weight: 700;
  font-size: 0.84rem;
  color: #003B46;
}

.wizard-template-meta {
  font-size: 0.73rem;
  color: #64748B;
}

/* Divider with text label */
.wizard-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #94A3B8;
  font-size: 0.75rem;
  margin: 4px 0;
}
.wizard-divider::before,
.wizard-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--border-subtle);
}

/* Wizard Asset Picker: Transkripte & Dialoge aus dem Assets-Hub */
.wizard-assets-section {
  background: #F8FAFC;
  border: 1.5px solid #E2E8F0;
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 12px;
}

.wizard-asset-transcripts-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 8px;
  max-height: 180px;
  overflow-y: auto;
  padding-right: 4px;
}

.wizard-asset-card:not(tr) {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 8px 12px;
  border: 1.5px solid #E2E8F0;
  border-radius: 8px;
  background: #FFFFFF;
  cursor: pointer;
  transition: all 0.15s ease;
  -webkit-user-select: none;
  user-select: none;
}

.wizard-asset-card:not(tr):hover {
  border-color: #007A78;
  background: #F0FAFA;
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 122, 120, 0.08);
}

.wizard-asset-card:not(tr).selected {
  border-color: #007A78;
  background: linear-gradient(135deg, #E6F7F7 0%, #F0FAFA 100%);
  box-shadow: 0 2px 8px rgba(0, 122, 120, 0.15);
}

/* Explicit Table Row Styling for Assets Hub Table (Overrides card flex styling) */
tr.wizard-asset-row,
tr.wizard-asset-card {
  display: table-row !important;
  cursor: pointer;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  transform: none !important;
  box-shadow: none !important;
  transition: background-color 0.15s ease;
}

tr.wizard-asset-row td,
tr.wizard-asset-card td {
  display: table-cell !important;
  vertical-align: middle;
  padding: 8px 12px;
  border-bottom: 1px solid #E2E8F0;
  border-top: none;
  background: transparent;
}

tr.wizard-asset-row:hover,
tr.wizard-asset-card:hover {
  background-color: #F8FAFC !important;
  transform: none !important;
  box-shadow: none !important;
}

tr.wizard-asset-row.selected-row,
tr.wizard-asset-card.selected-row,
tr.wizard-asset-card.selected {
  background-color: #F0F9FF !important;
  transform: none !important;
  box-shadow: none !important;
}

.wizard-asset-card-header {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.wizard-asset-card-icon {
  font-size: 1.25rem;
  line-height: 1.1;
  flex-shrink: 0;
}

.wizard-asset-card-title {
  font-weight: 700;
  font-size: 0.8rem;
  color: #0F172A;
  line-height: 1.25;
  margin-bottom: 2px;
}

.wizard-asset-card-filename {
  font-size: 0.72rem;
  color: #64748B;
  font-family: monospace;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wizard-asset-card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 6px;
  padding-top: 4px;
  border-top: 1px dashed #E2E8F0;
  font-size: 0.68rem;
  color: #64748B;
}

.wizard-asset-card-badge {
  background: #E0F2FE;
  color: #0369A1;
  padding: 1px 6px;
  border-radius: 4px;
  font-weight: 600;
  font-size: 0.65rem;
}

.wizard-asset-card.selected .wizard-asset-card-badge {
  background: #007A78;
  color: #FFFFFF;
}

/* Analysis result panel (after KI analysis) */
.wizard-analysis-panel {
  border: 1.5px solid #A7F3D0;
  border-radius: 10px;
  background: linear-gradient(135deg, #F0FDF4 0%, #ECFDF5 100%);
  padding: 14px 16px;
  animation: wizardFadeIn 0.25s ease;
}

.wizard-analysis-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.wizard-analysis-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 0.88rem;
  color: #065F46;
}

.wizard-confidence-badge {
  font-size: 0.72rem;
  font-weight: 700;
  background: #D1FAE5;
  color: #065F46;
  border: 1px solid #6EE7B7;
  border-radius: 999px;
  padding: 2px 10px;
}

.wizard-stats-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

/* Activate-after-create option */
.wizard-activate-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.82rem;
  color: #475569;
  cursor: pointer;
  padding: 8px 0 0;
}

pre.code-block {
  background-color: #0F172A;
  color: #F8FAFC;
  padding: 12px;
  border-radius: var(--radius-sm);
  font-size: 0.78rem;
  overflow-x: auto;
  font-family: monospace;
}

@media (max-width: 1200px) {
  .top-nav {
    padding: 0 16px;
    gap: 12px;
  }

  .nav-brand {
    flex-basis: 225px;
  }

  .brand-info h1 {
    font-size: 1rem;
  }

  .brand-subtitle {
    display: none;
  }

  .nav-actions .btn span {
    display: none;
  }

  .nav-actions .btn {
    padding: 8px;
  }

  .workspace-layout {
    grid-template-columns: 330px minmax(420px, 1fr);
  }
}

@media (max-width: 800px) {
  body {
    height: auto;
    min-height: 100vh;
    overflow: auto;
  }

  .app-container {
    height: auto;
    min-height: 100vh;
  }

  .top-nav {
    position: static;
    align-items: flex-start;
    flex-wrap: wrap;
    padding: 12px 16px;
  }

  .nav-brand,
  .nav-meta,
  .nav-actions {
    width: 100%;
    flex: 1 0 100%;
  }

  .brand-subtitle,
  .nav-actions .btn span {
    display: inline;
  }

  .nav-meta {
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .nav-actions {
    justify-content: flex-start;
    overflow-x: auto;
  }

  .workspace-layout {
    display: flex;
    flex-direction: column;
    height: auto;
    overflow: visible;
  }

  .panel {
    height: auto;
    min-height: 620px;
    border: 0;
    border-bottom: 1px solid var(--border-subtle);
  }

  .panel-graph {
    min-height: 680px;
  }
}

/* ==========================================================================
   Settings Drawer
   ========================================================================== */
.settings-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.35);
  z-index: 200;
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
  opacity: 0;
  transition: opacity 0.25s ease;
}
.settings-overlay.visible { display: block; opacity: 1; }

.settings-drawer {
  position: fixed;
  top: 0; right: 0;
  width: 420px;
  max-width: 96vw;
  height: 100vh;
  background: #fff;
  border-left: 1px solid var(--border-subtle);
  box-shadow: -8px 0 40px rgba(0,0,0,0.15);
  z-index: 201;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.3s cubic-bezier(0.4,0,0.2,1);
  overflow: hidden;
}
.settings-drawer.open { transform: translateX(0); }

.settings-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px;
  background: var(--brand-petrol);
  color: white;
  flex-shrink: 0;
}
.settings-drawer-title {
  display: flex; align-items: center; gap: 10px;
  font-weight: 600; font-size: 0.95rem; font-family: var(--font-heading);
}
.settings-drawer-close {
  background: none; border: none;
  color: rgba(255,255,255,0.8);
  font-size: 1.5rem; cursor: pointer;
  line-height: 1; padding: 2px 6px; border-radius: 4px;
  transition: background 0.15s;
}
.settings-drawer-close:hover { background: rgba(255,255,255,0.15); color: white; }

.settings-drawer-body { flex: 1; overflow-y: auto; padding: 0; }

.settings-section {
  padding: 20px;
  border-bottom: 1px solid var(--border-subtle);
}
.settings-section:last-child { border-bottom: none; }
.settings-section-primary { background: linear-gradient(135deg,#EFF6FF 0%,#F0FDF4 100%); }
.settings-section-muted { background: #F8FAFC; }

.settings-section-title {
  display: flex; align-items: center; gap: 8px;
  font-size: 0.82rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.06em;
  color: var(--text-secondary); margin: 0 0 10px 0;
}
.settings-hint {
  font-size: 0.8rem; color: var(--text-secondary);
  margin: 0 0 12px 0; line-height: 1.5;
}

.settings-data-status {
  background: #F8FAFC; border: 1px solid var(--border-subtle);
  border-radius: 8px; padding: 10px 14px;
  display: flex; flex-direction: column; gap: 8px;
}
.status-row { display: flex; justify-content: space-between; align-items: center; }
.status-file { font-family: 'Courier New',monospace; font-size: 0.8rem; color: var(--text-primary); }
.status-badge { font-size: 0.75rem; font-weight: 600; padding: 2px 8px; border-radius: 10px; }
.status-checking { background: #FEF9C3; color: #854D0E; }
.status-ok       { background: #DCFCE7; color: #166534; }
.status-missing  { background: #FEE2E2; color: #991B1B; }

.settings-btn {
  display: flex; align-items: center; gap: 8px;
  width: 100%; padding: 11px 16px; border: none;
  border-radius: 8px; font-size: 0.84rem; font-weight: 600;
  font-family: var(--font-main); cursor: pointer;
  transition: all 0.18s ease; text-align: left;
}
.settings-btn-primary { background: var(--brand-petrol); color: white; margin-top: 12px; }
.settings-btn-primary:hover:not(:disabled) {
  background: var(--brand-petrol-hover);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0,59,70,0.3);
}
.settings-btn-secondary {
  background: white; color: var(--text-primary);
  border: 1px solid var(--border-strong);
}
.settings-btn-secondary:hover:not(:disabled) {
  background: var(--bg-hover); border-color: var(--brand-petrol); color: var(--brand-petrol);
}
.settings-btn:disabled { opacity: 0.6; cursor: not-allowed; }

.settings-reset-info {
  background: white; border: 1px solid var(--border-subtle);
  border-radius: 6px; padding: 8px 12px;
  font-size: 0.78rem; color: var(--text-secondary); margin-bottom: 4px;
}

.settings-reset-progress { margin-top: 12px; }
.progress-bar-track {
  height: 6px; background: #E2E8F0; border-radius: 3px;
  overflow: hidden; margin-bottom: 6px;
}
.progress-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--brand-petrol), var(--brand-green));
  border-radius: 3px; transition: width 0.4s ease; width: 0%;
}
#progressText { font-size: 0.75rem; color: var(--text-secondary); }

.settings-reset-result { margin-top: 12px; }
.reset-success {
  background: #DCFCE7; border: 1px solid #A7F3D0;
  border-radius: 8px; padding: 12px 14px;
  font-size: 0.82rem; color: #166534; line-height: 1.6;
}
.reset-error {
  background: #FEE2E2; border: 1px solid #FECACA;
  border-radius: 8px; padding: 12px 14px;
  font-size: 0.82rem; color: #991B1B;
}

.settings-license-list {
  margin: 0; padding: 0 0 0 16px;
  display: flex; flex-direction: column; gap: 10px;
}
.settings-license-list li { font-size: 0.79rem; color: var(--text-primary); line-height: 1.5; }
.settings-license-list li span { color: var(--text-secondary); }
.settings-license-list a { color: var(--color-blue); text-decoration: none; }
.settings-license-list a:hover { text-decoration: underline; }

/* ==========================================================================
   Import Drawer: named-graph document upload
   ========================================================================== */
.settings-field-label {
  display: block;
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--text-secondary);
  margin: 12px 0 5px 0;
}

.settings-text-input,
.settings-file-input {
  width: 100%;
  padding: 8px 10px;
  font-family: var(--font-main);
  font-size: 0.82rem;
  color: var(--text-primary);
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.settings-text-input:focus {
  border-color: var(--border-focus);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.settings-file-input { padding: 6px 8px; cursor: pointer; }

.settings-checkbox-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.78rem;
  color: var(--text-secondary);
  margin-top: 8px;
  cursor: pointer;
}

.import-anchor-results {
  position: relative;
  top: 0;
  margin-top: 4px;
  max-height: 180px;
}

.import-graphs-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.import-graph-card {
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: 8px;
  padding: 10px 12px;
}

.import-graph-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 4px;
}

.import-graph-title {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text-primary);
}

.import-graph-meta {
  font-size: 0.72rem;
  color: var(--text-muted);
  margin-bottom: 8px;
}

.import-graph-status {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: 10px;
  white-space: nowrap;
}

.import-graph-status.status-staged { background: var(--color-amber-light, #FEF3C7); color: #92400E; }
.import-graph-status.status-merged { background: #DCFCE7; color: #166534; }
.import-graph-status.status-discarded { background: #F1F5F9; color: #64748B; }

.import-graph-actions {
  display: flex;
  gap: 6px;
}

.import-graph-actions button {
  flex: 1;
  padding: 6px 8px;
  font-size: 0.76rem;
  font-weight: 600;
  border-radius: 6px;
  cursor: pointer;
  border: 1px solid var(--border-subtle);
  background: #FFFFFF;
  color: var(--text-primary);
}

.btn-import-merge { border-color: var(--brand-green-border) !important; color: var(--brand-green) !important; }
.btn-import-merge:hover { background: var(--brand-green-light) !important; }
.btn-import-discard:hover { background: #FEF2F2 !important; border-color: #FECACA !important; color: #991B1B !important; }

/* ==========================================================================
   "Aufgaben" tab: agent-generated task/iteration backlog
   ========================================================================== */
.tasks-layout {
  flex: 1;
  flex-direction: column;
  height: calc(100vh - 72px - 44px);
  overflow-y: auto;
  background-color: #F8FAFC;
  padding: 0;
}

.tasks-container {
  max-width: 1400px;
  width: 100%;
  margin: 0 auto;
  padding: 16px 24px 40px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  box-sizing: border-box;
}

.tasks-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 2px;
}

.tasks-toolbar-title-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
}

.tasks-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Horizontal Governance Pipeline */
.governance-horizontal-pipeline {
  display: grid;
  grid-template-columns: 140px repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 2px;
}

.gov-step-card {
  background-color: var(--bg-panel);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
  box-shadow: var(--shadow-sm);
  -webkit-user-select: none;
  user-select: none;
}

.gov-step-card:hover {
  border-color: var(--color-primary);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.gov-step-card.active {
  border-color: var(--color-primary);
  background: linear-gradient(to bottom, #FFFFFF, #F8FAFC);
  box-shadow: 0 0 0 2px rgba(11, 44, 97, 0.12), 0 4px 12px rgba(0, 0, 0, 0.06);
}

.gov-step-card.active::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 12px;
  right: 12px;
  height: 3px;
  background-color: var(--color-primary);
  border-radius: 3px 3px 0 0;
}

.gov-step-num {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #E2E8F0;
  color: #475569;
  font-weight: 700;
  font-size: 0.82rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.2s ease;
}

.gov-step-card.active .gov-step-num {
  background: var(--color-primary);
  color: #FFFFFF;
}

.gov-step-badge {
  padding: 4px 10px;
  background: #EEF2F6;
  color: #334155;
  font-weight: 700;
  font-size: 0.78rem;
  border-radius: 6px;
  flex-shrink: 0;
}

.gov-step-card.active .gov-step-badge {
  background: var(--color-primary);
  color: #FFFFFF;
}

.gov-step-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
}

.gov-step-title {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gov-step-desc {
  font-size: 0.72rem;
  color: var(--text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gov-step-count {
  font-size: 0.72rem;
  color: var(--text-secondary);
}

.gov-step-badge-count {
  background: #E2E8F0;
  color: #334155;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 12px;
  flex-shrink: 0;
}

.gov-step-card.active .gov-step-badge-count {
  background: #E0E7FF;
  color: #3730A3;
}

.staging-pill-indicator {
  position: absolute;
  top: -6px;
  right: 8px;
  background: #FEF3C7;
  color: #92400E;
  border: 1px solid #FCD34D;
  font-size: 0.65rem;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 10px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}

/* ───────────────────────────────────────────────────────────── */
/* Subtle Phase Distinctions for Governance Pipeline Cards       */
/* ───────────────────────────────────────────────────────────── */
.gov-step-card[data-gov-stage="1"] .gov-step-num {
  background: #DBEAFE;
  color: #1D4ED8;
}
.gov-step-card[data-gov-stage="1"]:hover {
  border-color: #60A5FA;
}
.gov-step-card[data-gov-stage="1"].active {
  border-color: #3B82F6;
  background: linear-gradient(to bottom, #FFFFFF, #EFF6FF);
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15), 0 4px 12px rgba(59, 130, 246, 0.08);
}
.gov-step-card[data-gov-stage="1"].active::after {
  background-color: #3B82F6;
}
.gov-step-card[data-gov-stage="1"].active .gov-step-num {
  background: #2563EB;
  color: #FFFFFF;
}
.gov-step-card[data-gov-stage="1"].active .gov-step-badge-count {
  background: #DBEAFE;
  color: #1E40AF;
}

.gov-step-card[data-gov-stage="2"] .gov-step-num {
  background: #FEF3C7;
  color: #92400E;
}
.gov-step-card[data-gov-stage="2"]:hover {
  border-color: #FBBF24;
}
.gov-step-card[data-gov-stage="2"].active {
  border-color: #D97706;
  background: linear-gradient(to bottom, #FFFFFF, #FFFBEB);
  box-shadow: 0 0 0 2px rgba(217, 119, 6, 0.15), 0 4px 12px rgba(217, 119, 6, 0.08);
}
.gov-step-card[data-gov-stage="2"].active::after {
  background-color: #D97706;
}
.gov-step-card[data-gov-stage="2"].active .gov-step-num {
  background: #D97706;
  color: #FFFFFF;
}
.gov-step-card[data-gov-stage="2"].active .gov-step-badge-count {
  background: #FEF3C7;
  color: #92400E;
}

.gov-step-card[data-gov-stage="3"] .gov-step-num {
  background: #EDE9FE;
  color: #5B21B6;
}
.gov-step-card[data-gov-stage="3"]:hover {
  border-color: #A78BFA;
}
.gov-step-card[data-gov-stage="3"].active {
  border-color: #7C3AED;
  background: linear-gradient(to bottom, #FFFFFF, #FAF5FF);
  box-shadow: 0 0 0 2px rgba(124, 58, 237, 0.15), 0 4px 12px rgba(124, 58, 237, 0.08);
}
.gov-step-card[data-gov-stage="3"].active::after {
  background-color: #7C3AED;
}
.gov-step-card[data-gov-stage="3"].active .gov-step-num {
  background: #7C3AED;
  color: #FFFFFF;
}
.gov-step-card[data-gov-stage="3"].active .gov-step-badge-count {
  background: #EDE9FE;
  color: #5B21B6;
}

.gov-step-card[data-gov-stage="4"] .gov-step-num {
  background: #D1FAE5;
  color: #065F46;
}
.gov-step-card[data-gov-stage="4"]:hover {
  border-color: #34D399;
}
.gov-step-card[data-gov-stage="4"].active {
  border-color: #059669;
  background: linear-gradient(to bottom, #FFFFFF, #ECFDF5);
  box-shadow: 0 0 0 2px rgba(5, 150, 105, 0.15), 0 4px 12px rgba(5, 150, 105, 0.08);
}
.gov-step-card[data-gov-stage="4"].active::after {
  background-color: #059669;
}
.gov-step-card[data-gov-stage="4"].active .gov-step-num {
  background: #059669;
  color: #FFFFFF;
}
.gov-step-card[data-gov-stage="4"].active .gov-step-badge-count {
  background: #D1FAE5;
  color: #065F46;
}

/* Staging Banner */
.tasks-staging-banner {
  background: #FFFBEB;
  border: 1px solid #FDE68A;
  border-radius: var(--radius-md);
  padding: 10px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.staging-banner-info {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  color: #92400E;
}

.staging-banner-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Tasks Controls Row */
.tasks-controls-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 4px;
}

.tasks-filters {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.tasks-search-wrap {
  width: 280px;
}

.tasks-search-input {
  width: 100%;
  padding: 7px 12px;
  font-size: 0.82rem;
  border: 1px solid var(--border-subtle);
  border-radius: 20px;
  background: var(--bg-panel);
  font-family: var(--font-main);
  outline: none;
  transition: all 0.2s;
}

.tasks-search-input:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 2px rgba(11, 44, 97, 0.1);
}

/* Tasks Table */
.tasks-table-container {
  background: var(--bg-panel);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
}

.tasks-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  font-size: 0.82rem;
}

.tasks-table th {
  background-color: #F8FAFC;
  padding: 10px 14px;
  font-weight: 700;
  color: #475569;
  border-bottom: 1px solid var(--border-subtle);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.tasks-table td {
  padding: 12px 14px;
  border-bottom: 1px solid #EDF2F7;
  vertical-align: middle;
  color: var(--text-primary);
}

.tasks-table th.sortable-task-th {
  -webkit-user-select: none;
  user-select: none;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.tasks-table th.sortable-task-th:hover {
  background-color: #EEF2F6;
  color: var(--text-primary, #0F172A);
}

.tasks-table th.sortable-task-th .sort-icon {
  margin-left: 4px;
  font-size: 0.72rem;
  opacity: 0.6;
}

.tasks-table th.sortable-task-th:hover .sort-icon {
  opacity: 1;
}

.tasks-table tr.task-table-row {
  cursor: pointer;
  transition: background-color 0.15s ease, opacity 0.15s ease;
}

.tasks-table tr.task-table-row:hover {
  background-color: #F8FAFC;
}

.tasks-table tr.task-table-row.task-dragging {
  opacity: 0.45;
  background-color: #F1F5F9;
}

.tasks-table tr.task-table-row.task-drag-over td {
  border-top: 2px solid var(--primary-color, #0284c7) !important;
  background-color: #F0F9FF;
}

.tasks-table tr.task-table-row:last-child td {
  border-bottom: none;
}

/* Status Badges */
.task-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
}

.task-status-pill.status-open {
  background: #EFF6FF;
  color: #1D4ED8;
  border: 1px solid #BFDBFE;
}

.task-status-pill.status-in_progress {
  background: #FEF3C7;
  color: #B45309;
  border: 1px solid #FDE68A;
}

.task-status-pill.status-done {
  background: #ECFDF5;
  color: #047857;
  border: 1px solid #A7F3D0;
}

.task-status-pill.status-dismissed {
  background: #F1F5F9;
  color: #64748B;
  border: 1px solid #CBD5E1;
}

/* Phase Badges in Table */
.task-stage-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 9px;
  border-radius: 6px;
  font-size: 0.74rem;
  font-weight: 600;
  white-space: nowrap;
  transition: all 0.15s ease;
}

.task-stage-badge .stage-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* Phase 1: Erhebung & Interview (Sky/Blue) */
.task-stage-badge.stage-1 {
  background: #EFF6FF;
  border: 1px solid #BFDBFE;
  color: #1D4ED8;
}
.task-stage-badge.stage-1 .stage-dot {
  background: #2563EB;
}

/* Phase 2: Formalisierung & Staging (Amber/Warm Gold) */
.task-stage-badge.stage-2 {
  background: #FFFBEB;
  border: 1px solid #FDE68A;
  color: #92400E;
}
.task-stage-badge.stage-2 .stage-dot {
  background: #D97706;
}

/* Phase 3: SHACL-Qualitätsgate (Purple/Violet) */
.task-stage-badge.stage-3 {
  background: #FAF5FF;
  border: 1px solid #DDD6FE;
  color: #5B21B6;
}
.task-stage-badge.stage-3 .stage-dot {
  background: #7C3AED;
}

/* Phase 4: Freigabe & Release (Emerald/Green) */
.task-stage-badge.stage-4 {
  background: #ECFDF5;
  border: 1px solid #A7F3D0;
  color: #065F46;
}
.task-stage-badge.stage-4 .stage-dot {
  background: #059669;
}

/* Task Description & Node Badges */
.task-row-title {
  font-weight: 700;
  color: var(--text-primary);
  font-size: 0.86rem;
  margin-bottom: 3px;
}

.task-row-desc {
  font-size: 0.77rem;
  color: var(--text-secondary);
  line-height: 1.45;
}

.task-node-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 4px;
}

.task-node-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 1px 6px;
  background: #EEF2FF;
  color: #4338CA;
  border: 1px solid #C7D2FE;
  border-radius: 4px;
  font-size: 0.7rem;
  font-weight: 600;
}

.task-severity {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: 10px;
  white-space: nowrap;
  display: inline-block;
}
.task-severity.severity-high   { background: #FEE2E2; color: #991B1B; border: 1px solid #FECACA; }
.task-severity.severity-medium { background: #FEF3C7; color: #92400E; border: 1px solid #FDE68A; }
.task-severity.severity-low    { background: #F1F5F9; color: #475569; border: 1px solid #E2E8F0; }

/* Table Quick Action Buttons */
.task-table-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}

.btn-open-task {
  padding: 4px 10px;
  font-size: 0.75rem;
  border-radius: 6px;
  background: var(--bg-panel);
  border: 1px solid var(--border-subtle);
  color: var(--text-primary);
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
}

.btn-open-task:hover {
  background: #F1F5F9;
  border-color: #CBD5E1;
}

.btn-advance-quick {
  padding: 4px 8px;
  font-size: 0.75rem;
  border-radius: 6px;
  background: #EFF6FF;
  border: 1px solid #BFDBFE;
  color: #1D4ED8;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
}

.btn-advance-quick:hover {
  background: #DBEAFE;
}

/* Task Workflow Modal */
.task-workflow-pipeline-box {
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: var(--radius-md);
  padding: 14px 16px;
  margin-bottom: 12px;
}

.task-state-stepper {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}

.state-step-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 20px;
  border: 1px solid #CBD5E1;
  background: #FFFFFF;
  color: #475569;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.state-step-btn:hover {
  border-color: var(--color-primary);
  background: #F8FAFC;
}

.state-step-btn.active {
  background: var(--color-primary);
  color: #FFFFFF;
  border-color: var(--color-primary);
  box-shadow: 0 2px 6px rgba(11, 44, 97, 0.25);
}

.state-step-btn.active .state-step-num {
  background: #FFFFFF;
  color: var(--color-primary);
}

.state-step-num {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #E2E8F0;
  color: #334155;
  font-size: 0.7rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.state-step-arrow {
  color: #94A3B8;
  font-weight: 700;
  font-size: 0.85rem;
}

.task-quick-advance-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-top: 8px;
}

.btn-advance-state {
  font-weight: 600;
  font-size: 0.82rem;
  padding: 7px 16px;
  border-radius: 6px;
  background: var(--color-primary);
  color: #FFFFFF;
  border: none;
  cursor: pointer;
  transition: background 0.2s ease;
}

.btn-advance-state:hover {
  background: #09224A;
}

/* ==========================================================================
   "Daten & Schnittstellen" tab: export/persistence, SPARQL console, import
   ========================================================================== */
.data-layout {
  flex: 1;
  flex-direction: column;
  height: calc(100vh - 72px - 44px);
  overflow-y: auto;
  background-color: #F8FAFC;
  padding: 0;
}

.data-container {
  max-width: 1400px;
  width: 100%;
  margin: 0 auto;
  padding: 16px 24px 40px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  box-sizing: border-box;
}

.data-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 16px;
  align-items: start;
}

.data-card {
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding: 18px;
}

.sparql-textarea {
  width: 100%;
  font-family: 'Courier New', monospace;
  font-size: 0.8rem;
  color: var(--text-primary);
  background-color: var(--bg-subtle);
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
  padding: 10px;
  resize: vertical;
  outline: none;
  margin-bottom: 10px;
}

.sparql-textarea:focus {
  border-color: var(--border-focus);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.sparql-result {
  margin-top: 12px;
  max-height: 280px;
  overflow: auto;
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
}

.sparql-result table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.76rem;
}

.sparql-result th, .sparql-result td {
  padding: 6px 10px;
  border-bottom: 1px solid var(--border-subtle);
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 260px;
}

.sparql-result th {
  background-color: var(--bg-subtle);
  font-weight: 700;
  color: var(--text-secondary);
  position: sticky;
  top: 0;
}

.sparql-result pre {
  margin: 0;
  padding: 10px;
  font-size: 0.76rem;
  white-space: pre-wrap;
  word-break: break-word;
}

/* ==========================================================================
   Data-grid full-width cards (Audit-Log, SHACL, Validation) + shared tables
   ========================================================================== */
.data-card-full {
  grid-column: 1 / -1;
}

.audit-toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.audit-level-filter {
  padding: 6px 10px;
  font-size: 0.8rem;
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
  font-family: var(--font-main);
  cursor: pointer;
}

.audit-table-wrapper,
.shacl-table-wrapper,
.validation-table-wrapper {
  max-height: 360px;
  overflow: auto;
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
}

.audit-table-wrapper table,
.shacl-table-wrapper table,
.validation-table-wrapper table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.78rem;
}

.audit-table-wrapper th, .audit-table-wrapper td,
.shacl-table-wrapper th, .shacl-table-wrapper td,
.validation-table-wrapper th, .validation-table-wrapper td {
  padding: 7px 10px;
  border-bottom: 1px solid var(--border-subtle);
  text-align: left;
  vertical-align: top;
}

.audit-table-wrapper th,
.shacl-table-wrapper th,
.validation-table-wrapper th {
  background-color: var(--bg-subtle);
  font-weight: 700;
  color: var(--text-secondary);
  position: sticky;
  top: 0;
}

.audit-level-badge {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: 10px;
  white-space: nowrap;
}

.audit-level-badge.level-info    { background: var(--color-blue-light); color: var(--color-blue); }
.audit-level-badge.level-warning { background: var(--color-amber-light); color: #92400E; }
.audit-level-badge.level-error   { background: #FEE2E2; color: #991B1B; }

.validation-summary {
  padding: 4px 0;
}

.validation-status-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: var(--radius-md);
  font-weight: 700;
  font-size: 0.9rem;
  margin-bottom: 8px;
}

.validation-status-banner.status-ok {
  background: var(--brand-green-light);
  color: #065F46;
  border: 1px solid var(--brand-green-border);
}

.validation-status-banner.status-warn {
  background: var(--color-amber-light);
  color: #92400E;
  border: 1px solid var(--color-amber-border);
}

/* ==========================================================================
   "Turtle" tab: small file-editor (sidebar list + textarea editor)
   ========================================================================== */
.turtle-layout {
  height: calc(100vh - 72px - 44px);
  overflow: hidden;
}

.turtle-sidebar {
  width: 300px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  padding: 18px;
  border-right: 1px solid var(--border-subtle);
  background-color: var(--bg-panel);
  overflow-y: auto;
}

.turtle-sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.turtle-file-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.turtle-file-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-sm);
  background-color: #FFFFFF;
  cursor: grab;
  transition: all 0.15s;
}

.turtle-file-item:hover {
  border-color: var(--border-focus);
}

.turtle-file-item.active {
  border-color: var(--brand-petrol);
  background-color: var(--bg-subtle);
}

.turtle-file-item.dragging {
  opacity: 0.4;
}

.turtle-file-item-info {
  flex: 1;
  min-width: 0;
  cursor: pointer;
}

.turtle-file-item-title {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.turtle-file-item-meta {
  font-size: 0.68rem;
  color: var(--text-muted);
}

.turtle-file-item-delete {
  border: none;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 0.9rem;
  padding: 2px 6px;
  border-radius: 4px;
}

.turtle-file-item-delete:hover {
  background-color: #FEE2E2;
  color: #991B1B;
}

.turtle-editor {
  flex: 1;
  min-width: 0;
  padding: 20px 24px;
  overflow-y: auto;
}

/* ==========================================================================
   Knowledge Graphs & Domains Management (Wissensgraphen & Domänen)
   ========================================================================== */
.domains-layout {
  flex: 1;
  height: calc(100vh - 72px - 44px);
  overflow-y: auto;
  background-color: #F8FAFC;
}

.domains-container {
  max-width: 1400px;
  width: 100%;
  margin: 0 auto;
  padding: 16px 24px 40px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  box-sizing: border-box;
}

.domains-toolbar-card {
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  padding: 12px 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  border-top: 3px solid var(--brand-petrol);
}

.domains-toolbar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}

.domains-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.domains-filter-pills {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.domains-search-wrap {
  min-width: 200px;
  max-width: 280px;
}

.domains-search-input {
  width: 100%;
  border-radius: 20px !important;
  padding: 7px 16px !important;
  font-size: 0.84rem !important;
  border: 1px solid var(--border-strong) !important;
  background: #FFFFFF !important;
  transition: all 0.15s ease !important;
}

.domains-search-input:focus {
  border-color: var(--brand-petrol) !important;
  box-shadow: 0 0 0 3px rgba(0, 59, 70, 0.12) !important;
}

/* ==========================================================================
   Knowledge Graph Table View & WebProtégé Editor
   ========================================================================== */
.domains-table-card {
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.domains-table-wrapper {
  width: 100%;
  overflow-x: auto;
}

.domains-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  font-size: 0.86rem;
}

.domains-table th {
  position: relative;
  background: #F8FAFC;
  padding: 12px 14px;
  font-weight: 600;
  font-size: 0.76rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748B;
  border-bottom: 1.5px solid var(--border-subtle);
  -webkit-user-select: none;
  user-select: none;
  white-space: nowrap;
}

/* Column resizer handle for resizable table columns */
.domains-table th .col-resizer {
  position: absolute;
  top: 0;
  right: 0;
  width: 9px;
  bottom: 0;
  cursor: col-resize;
  -webkit-user-select: none;
  user-select: none;
  z-index: 10;
}

.domains-table th .col-resizer::after {
  content: '';
  position: absolute;
  top: 20%;
  bottom: 20%;
  right: 3px;
  width: 2px;
  background-color: #CBD5E1;
  border-radius: 1px;
  opacity: 0;
  transition: opacity 0.15s ease, background-color 0.15s ease;
}

.domains-table th:hover .col-resizer::after {
  opacity: 0.6;
}

.domains-table th .col-resizer:hover::after,
.domains-table th .col-resizer.is-resizing::after {
  opacity: 1;
  background-color: var(--brand-petrol, #008779);
  width: 3px;
  right: 2px;
}

.domains-table th .col-resizer.is-resizing {
  background-color: rgba(0, 135, 121, 0.08);
}

.domains-table th.sortable-th {
  cursor: pointer;
  transition: color 0.15s ease, background-color 0.15s ease;
}

.domains-table th.sortable-th:hover {
  color: var(--brand-petrol);
  background: #F1F5F9;
}

.domains-table th .sort-icon {
  display: inline-block;
  font-size: 0.72rem;
  margin-left: 4px;
  color: #94A3B8;
  vertical-align: middle;
}

.domains-table th.sorted-asc,
.domains-table th.sorted-desc {
  color: var(--brand-petrol);
  background: #EDF7F6;
}

.domains-table th.sorted-asc .sort-icon,
.domains-table th.sorted-desc .sort-icon {
  color: var(--brand-green);
  font-weight: 700;
}

.domains-table td {
  padding: 12px 14px;
  border-bottom: 1px solid #F1F5F9;
  color: var(--text-primary);
  vertical-align: middle;
}

.domain-table-row {
  cursor: pointer;
  transition: background-color 0.15s ease, border-left-color 0.15s ease;
}

.domain-table-row:hover {
  background-color: #F8FAFC;
}

.domain-table-row.selected-row {
  background-color: #F0FDF4 !important;
}

.domain-table-row.active-domain-row {
  background-color: rgba(240, 253, 244, 0.45);
}

.domain-table-row.active-domain-row td:first-child {
  box-shadow: inset 3px 0 0 var(--brand-green);
}

.col-status-indicator {
  width: 24px;
  text-align: center;
  padding-right: 0 !important;
}

.domain-status-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  display: inline-block;
  background-color: #CBD5E1;
}

.domain-status-dot.active {
  background-color: var(--brand-green);
  box-shadow: 0 0 0 3px rgba(0, 168, 107, 0.2);
}

.domain-name-cell {
  display: flex;
  align-items: center;
  gap: 10px;
}

.domain-name-icon {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: #F1F5F9;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  flex-shrink: 0;
  border: 1px solid rgba(0,0,0,0.05);
}

.domain-name-text-wrap {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.domain-primary-name {
  font-weight: 700;
  font-size: 0.88rem;
  color: var(--text-primary);
}

.domain-sub-desc {
  font-size: 0.75rem;
  color: #64748B;
  max-width: 380px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.col-num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  color: #334155;
  white-space: nowrap;
}

.col-reorder {
  text-align: center;
  width: 65px;
}

.col-actions {
  text-align: right;
  white-space: nowrap;
}

.table-row-actions {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  justify-content: flex-end;
}

.btn-icon-action {
  width: 28px;
  height: 28px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #F8FAFC;
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.82rem;
  transition: all 0.15s;
  color: var(--text-secondary);
}

.btn-icon-action:hover:not(:disabled) {
  background: #E2E8F0;
  color: var(--text-primary);
  border-color: #CBD5E1;
}

/* ==========================================================================
   Knowledge Graph Inspector Style Modal Components
   ========================================================================== */
.inspector-modal-header-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border-subtle);
  gap: 12px;
  flex-wrap: wrap;
}

.inspector-header-title-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
}

.inspector-header-icon {
  font-size: 1.8rem;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: #F1F5F9;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(0,0,0,0.06);
}

.inspector-header-title {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0;
}

.inspector-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.inspector-metrics-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-bottom: 16px;
}

.inspector-metric-card {
  background: #F8FAFC;
  border: 1px solid var(--border-subtle);
  border-radius: 8px;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.inspector-metric-label {
  font-size: 0.72rem;
  text-transform: uppercase;
  color: #64748B;
  font-weight: 600;
  letter-spacing: 0.03em;
}

.inspector-metric-val {
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--brand-petrol);
  font-variant-numeric: tabular-nums;
}

.inspector-tabs {
  display: flex;
  border-bottom: 2px solid var(--border-subtle);
  gap: 4px;
  margin-bottom: 16px;
}

.inspector-tab {
  padding: 8px 16px;
  font-size: 0.84rem;
  font-weight: 600;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--text-secondary);
  cursor: pointer;
  margin-bottom: -2px;
  transition: all 0.15s;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.inspector-tab:hover {
  color: var(--text-primary);
  background: #F8FAFC;
}

.inspector-tab.active {
  color: var(--brand-petrol);
  border-bottom-color: var(--brand-petrol);
  font-weight: 700;
}

.inspector-tab-content {
  display: none;
  flex: 1 1 auto;
}

.inspector-tab-content.active {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  animation: fadeIn 0.15s ease-in-out;
}

/* ==========================================================================
   Emoji Picker Component
   ========================================================================== */
.emoji-picker-container {
  position: relative;
}

.emoji-preview-box {
  cursor: pointer;
  width: 44px;
  height: 38px;
  font-size: 1.35rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #FFFFFF;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  -webkit-user-select: none;
  user-select: none;
  transition: border-color 0.15s, transform 0.1s;
}

.emoji-preview-box:hover {
  border-color: var(--brand-petrol);
  transform: scale(1.05);
}

.emoji-picker-popover {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 1500;
  width: 320px;
  max-height: 340px;
  overflow-y: auto;
  background: #FFFFFF;
  border: 1px solid var(--border-color);
  border-radius: 10px;
  box-shadow: 0 12px 30px -4px rgba(0, 0, 0, 0.18), 0 4px 10px -2px rgba(0, 0, 0, 0.08);
  padding: 12px;
  animation: fadeIn 0.15s ease-out;
}

.emoji-picker-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border-subtle);
}

.emoji-picker-close {
  background: transparent;
  border: none;
  font-size: 1.1rem;
  cursor: pointer;
  color: var(--text-muted);
  line-height: 1;
  padding: 2px 6px;
  border-radius: 4px;
}

.emoji-picker-close:hover {
  background: #F1F5F9;
  color: var(--text-primary);
}

.emoji-picker-cat-title {
  font-size: 0.72rem;
  font-weight: 700;
  color: #64748B;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin: 10px 0 6px 0;
}

.emoji-picker-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 4px;
}

.emoji-btn {
  background: transparent;
  border: 1px solid transparent;
  border-radius: 6px;
  font-size: 1.35rem;
  padding: 4px 2px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.12s ease-in-out;
}

.emoji-btn:hover {
  background: #F1F5F9;
  transform: scale(1.2);
  border-color: #CBD5E1;
}

.emoji-preview-single {
  width: 44px;
  height: 38px;
  box-sizing: border-box;
  font-size: 1.45rem;
}

/* ==========================================================================
   Domain Labeling System & Multi-Select Batch Bar
   ========================================================================== */
.domain-label-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 7px;
  font-size: 0.72rem;
  font-weight: 600;
  border-radius: 12px;
  line-height: 1.25;
  white-space: nowrap;
  letter-spacing: 0.01em;
}

.domain-label-pill .label-del-btn {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  margin-left: 2px;
  font-size: 0.75rem;
  line-height: 1;
  opacity: 0.65;
  transition: opacity 0.15s;
}

.domain-label-pill .label-del-btn:hover {
  opacity: 1;
}

.domain-labels-pill-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
}

.color-preset-dot {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid transparent;
  cursor: pointer;
  transition: all 0.12s;
  padding: 0;
}

.color-preset-dot:hover, .color-preset-dot.active {
  transform: scale(1.15);
  box-shadow: 0 0 0 2px #FFFFFF, 0 0 0 4px var(--brand-petrol);
}

.domain-table-row.row-multi-selected {
  background-color: #ECFDF5 !important;
  box-shadow: inset 3px 0 0 #059669;
}

.domains-batch-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  background: #0F172A;
  color: #FFFFFF;
  border-radius: var(--radius-md);
  margin-bottom: 12px;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.25);
  animation: fadeIn 0.15s ease-in-out;
}

.domains-batch-bar-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.86rem;
  font-weight: 600;
}

.domains-batch-bar-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.merge-overlap-badge {
  background: #EFF6FF;
  border: 1px solid #BFDBFE;
  color: #1D4ED8;
  border-radius: 6px;
  padding: 6px 12px;
  font-size: 0.8rem;
  display: flex;
  align-items: center;
  gap: 6px;
}

/* Horizontal Action Toolbox for Selected Domain */
.domain-selected-toolbar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 8px 14px;
  background: #F8FAFC;
  border: 1px solid #CBD5E1;
  border-radius: var(--radius-md);
  margin-bottom: 10px;
  box-shadow: var(--shadow-sm);
  animation: fadeIn 0.12s ease-out;
}

.domain-selected-toolbar-info {
  display: flex;
  align-items: center;
  gap: 10px;
}

.domain-selected-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

/* Table Drag and Drop Reordering */
.domain-table-row {
  cursor: grab;
}

.domain-table-row:active {
  cursor: grabbing;
}

.domain-table-row.dragging {
  opacity: 0.35;
  background: #E2E8F0 !important;
}

.domain-table-row.drag-over-top td {
  border-top: 2.5px solid var(--brand-petrol) !important;
}

.domain-table-row.drag-over-bottom td {
  border-bottom: 2.5px solid var(--brand-petrol) !important;
}

/* Compact Metrics & Horizontal Labels Bar */
.inspector-metrics-compact {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 12px;
}

.inspector-metric-card-compact {
  background: #F8FAFC;
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
  padding: 6px 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.inspector-labels-horizontal-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  background: #F8FAFC;
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
  margin-bottom: 14px;
  gap: 10px;
}

/* AI Suggestion Assistant Styles */
.btn-ai-suggest {
  background: linear-gradient(135deg, #EEF2FF 0%, #E0E7FF 100%);
  border: 1px solid #C7D2FE;
  color: #4F46E5;
  font-size: 0.74rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 6px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: all 0.15s ease-in-out;
}

.btn-ai-suggest:hover {
  background: linear-gradient(135deg, #E0E7FF 0%, #C7D2FE 100%);
  color: #3730A3;
  box-shadow: 0 2px 6px rgba(79, 70, 229, 0.2);
  transform: translateY(-1px);
}

.ai-suggest-grid {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-height: 480px;
  overflow-y: auto;
  padding: 2px;
}

.ai-suggest-card {
  border: 1.5px solid var(--border-subtle);
  border-radius: 8px;
  padding: 12px 14px;
  background: #FFFFFF;
  transition: all 0.15s ease-in-out;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ai-suggest-card:hover {
  border-color: #6366F1;
  box-shadow: 0 4px 14px rgba(99, 102, 241, 0.12);
}

.ai-suggest-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ai-suggest-card-title {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 6px;
}

.ai-suggest-card-desc {
  font-size: 0.76rem;
  color: #64748B;
}

.ai-suggest-card-text {
  font-size: 0.82rem;
  line-height: 1.45;
  background: #F8FAFC;
  padding: 10px;
  border-radius: 6px;
  border: 1px solid #E2E8F0;
  color: #1E293B;
  font-family: inherit;
  white-space: pre-wrap;
}



/* ==========================================================================
   Consolidated Settings Page & Area Navigation
   ========================================================================== */
.settings-page-layout.tab-panel.active,
.settings-page-layout {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: calc(100vh - 72px) !important;
  overflow-y: auto !important;
  box-sizing: border-box !important;
  padding: 24px 32px;
  max-width: 1400px;
  margin: 0 auto;
  width: 100%;
}

.settings-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border-subtle);
  gap: 16px;
  flex-wrap: wrap;
}

.settings-header-left {
  display: flex;
  align-items: center;
  gap: 14px;
}

.settings-header-icon {
  font-size: 2rem;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: #EFF6FF;
  border: 1px solid #BFDBFE;
  display: flex;
  align-items: center;
  justify-content: center;
}

.settings-page-title {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 4px 0;
}

.settings-page-subtitle {
  font-size: 0.84rem;
  color: var(--text-secondary);
  margin: 0;
}

.settings-split-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 28px;
  align-items: start;
}

@media (max-width: 900px) {
  .settings-split-layout {
    grid-template-columns: 1fr;
  }
}

.settings-nav-sidebar {
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: 12px;
  padding: 12px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
  display: flex;
  flex-direction: column;
  gap: 4px;
  position: sticky;
  top: 80px;
}

.settings-nav-group-title {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #94A3B8;
  padding: 6px 10px 4px 10px;
}

.settings-nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 10px 14px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--text-secondary);
  font-size: 0.86rem;
  font-weight: 600;
  cursor: pointer;
  text-align: left;
  transition: all 0.15s ease-in-out;
}

.settings-nav-item:hover {
  background: #F8FAFC;
  color: var(--text-primary);
}

.settings-nav-item.active {
  background: #F0FDF4;
  border-color: #BBF7D0;
  color: #065F46;
  font-weight: 700;
  box-shadow: 0 1px 2px rgba(0,0,0,0.02);
}

.settings-nav-icon {
  font-size: 1.15rem;
  width: 24px;
  display: flex;
  justify-content: center;
}

.settings-sidebar-version-card {
  margin-top: 14px;
  padding: 12px 14px;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.settings-version-header {
  display: flex;
  align-items: center;
  gap: 6px;
}

.settings-version-heading {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #64748B;
}

.settings-version-details {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.settings-version-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.78rem;
}

.settings-version-lbl {
  color: #64748B;
  font-weight: 500;
}

.settings-version-val {
  color: #0F172A;
  font-weight: 700;
}

.settings-version-tag {
  background: #EFF6FF;
  color: #1D4ED8;
  font-family: var(--font-mono, monospace);
  font-size: 0.72rem;
  font-weight: 600;
  padding: 1px 6px;
  border-radius: 4px;
  border: 1px solid #DBEAFE;
}

.settings-version-commit {
  background: #F1F5F9;
  color: #475569;
  font-family: var(--font-mono, monospace);
  font-size: 0.72rem;
  padding: 1px 5px;
  border-radius: 4px;
  border: 1px solid #E2E8F0;
}

.settings-system-version-footer {
  margin-top: 24px;
  padding: 14px 20px;
  background: #FFFFFF;
  border: 1px solid var(--border-subtle, #E2E8F0);
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.03);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.settings-system-footer-left {
  display: flex;
  align-items: center;
  gap: 12px;
}

.settings-system-footer-icon {
  font-size: 1.5rem;
  line-height: 1;
}

.settings-system-footer-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.9rem;
  color: #0F172A;
}

.settings-system-footer-sub {
  font-size: 0.75rem;
  color: #64748B;
  margin-top: 2px;
}

.settings-system-footer-sub code {
  background: #F1F5F9;
  padding: 1px 5px;
  border-radius: 4px;
  font-size: 0.72rem;
  color: #334155;
  border: 1px solid #E2E8F0;
}

.settings-system-tag-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 6px;
  font-size: 0.76rem;
  color: #334155;
  font-weight: 500;
}

.settings-system-tag-badge code {
  font-family: var(--font-mono, monospace);
  font-size: 0.74rem;
  color: #0F172A;
  background: #E2E8F0;
  padding: 1px 5px;
  border-radius: 3px;
}

.settings-content-pane {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.settings-pane {
  display: none;
  flex-direction: column;
  gap: 20px;
}

.settings-pane.active {
  display: flex;
  animation: fadeIn 0.2s ease-in-out;
}

.settings-section-card {
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(2px); }
  to { opacity: 1; transform: translateY(0); }
}

.protege-relations-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.protege-relation-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: #F1F5F9;
  border: 1px solid #E2E8F0;
  border-radius: 6px;
  padding: 4px 10px;
  font-size: 0.78rem;
  color: #334155;
  font-family: monospace;
}

.domains-grid {
  display: block;
}

.domain-card {
  background: #FFFFFF;
  border: 1.5px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding: 18px 20px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 14px;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
}

.domain-card:hover {
  border-color: #94A3B8;
  box-shadow: 0 8px 24px rgba(0, 59, 70, 0.08);
  transform: translateY(-2px);
}

.domain-card.active-domain-card {
  border-color: var(--brand-green) !important;
  background: linear-gradient(180deg, #FFFFFF 0%, #F0FDF4 100%);
  box-shadow: 0 4px 16px rgba(0, 168, 107, 0.14) !important;
}

.domain-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
}

.domain-card-title-wrap {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.domain-card-icon {
  font-size: 1.6rem;
  line-height: 1;
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: #F1F5F9;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.06);
}

.domain-card-name {
  font-size: 0.96rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0;
  font-family: var(--font-heading);
  line-height: 1.3;
}

.domain-card-badges {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.badge-domain-active {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 0.72rem;
  font-weight: 700;
  background: #DCFCE7;
  color: #166534;
  border: 1px solid #86EFAC;
}

.badge-system {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 0.72rem;
  font-weight: 600;
  background: #EEF2FF;
  color: #4338CA;
  border: 1px solid #C7D2FE;
}

.badge-custom {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 0.72rem;
  font-weight: 600;
  background: #FEF3C7;
  color: #92400E;
  border: 1px solid #FDE68A;
}

.domain-reorder-btn-group {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.btn-domain-sort {
  width: 22px;
  height: 20px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
  background: #F8FAFC;
  border: 1px solid var(--border-subtle);
  border-radius: 4px;
  cursor: pointer;
  color: var(--text-secondary);
  transition: all 0.15s;
}

.btn-domain-sort:hover:not(:disabled) {
  background: #E2E8F0;
  color: var(--text-primary);
}

.btn-domain-sort:disabled {
  opacity: 0.25;
  cursor: not-allowed;
}

.domain-card-desc {
  font-size: 0.81rem;
  color: var(--text-secondary);
  margin: 0;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.4em;
}

.domain-card-metrics {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
  padding: 8px 10px;
  background: #F8FAFC;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-subtle);
  font-size: 0.76rem;
  color: var(--text-secondary);
}

.domain-card-metric-item {
  display: flex;
  align-items: center;
  gap: 5px;
  justify-content: center;
}

.domain-card-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding-top: 10px;
  border-top: 1px solid #F1F5F9;
  flex-wrap: wrap;
}

.domain-action-btn-group {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.domains-manual-accordion {
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  margin-top: 10px;
}

.domains-accordion-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  background: #F8FAFC;
  border: none;
  cursor: pointer;
  font-family: var(--font-heading);
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--text-primary);
  transition: background 0.15s;
  text-align: left;
}

.domains-accordion-toggle:hover {
  background: #F1F5F9;
}

.accordion-title {
  display: flex;
  align-items: center;
  gap: 8px;
}

.accordion-arrow {
  font-size: 0.8rem;
  color: var(--text-secondary);
  transition: transform 0.2s ease;
}

.domains-manual-body {
  padding: 20px;
  border-top: 1px solid var(--border-subtle);
  background: #FFFFFF;
}

/* ==========================================================================
   Manual Triple Authoring — Knowledge Graph Target & Locked State
   ========================================================================== */
.manual-target-domain-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 12px 16px;
  background: #F8FAFC;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  margin-bottom: 16px;
}

.manual-target-domain-select-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.manual-target-label {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
}

.manual-target-select {
  min-width: 280px;
  padding: 7px 12px;
  font-size: 0.84rem;
  font-weight: 600;
  border-radius: 6px;
  border: 1.5px solid var(--border-subtle);
  background: #FFFFFF;
  color: var(--text-primary);
  outline: none;
  cursor: pointer;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.manual-target-select:focus {
  border-color: var(--brand-petrol);
  box-shadow: 0 0 0 3px rgba(0, 59, 70, 0.1);
}

.manual-target-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  border-radius: 14px;
  font-size: 0.76rem;
  font-weight: 600;
}

.status-pill-warning {
  background: #FEF3C7;
  color: #92400E;
  border: 1px solid #FDE68A;
}

.status-pill-warning .status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #D97706;
  display: inline-block;
}

.status-pill-success {
  background: #DCFCE7;
  color: #166534;
  border: 1px solid #86EFAC;
}

.status-pill-success .status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #16A34A;
  display: inline-block;
}

.manual-inactive-banner {
  background: #FFFBEB;
  border: 1.5px solid #FDE68A;
  border-left: 4px solid #D97706;
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 16px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 0.84rem;
  color: #92400E;
  line-height: 1.45;
  box-shadow: 0 1px 3px rgba(217, 119, 6, 0.08);
}

.data-card.data-card-disabled {
  opacity: 0.42;
  pointer-events: none;
  filter: grayscale(0.25);
  -webkit-user-select: none;
  user-select: none;
  position: relative;
  transition: opacity 0.2s ease, filter 0.2s ease;
}

.data-card.data-card-disabled button,
.data-card.data-card-disabled input {
  cursor: not-allowed !important;
}

/* ═════════════════════════════════════════════════════════════════════════
   Protégé Metadata Accordion & Dynamic Attributes
   ═════════════════════════════════════════════════════════════════════════ */
.metadata-accordion {
  margin-top: 10px;
  border-top: 1px dashed #CBD5E1;
  padding-top: 8px;
}

.metadata-accordion-toggle {
  background: none;
  border: none;
  padding: 4px 0;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8rem;
  font-weight: 600;
  color: #0369A1;
  cursor: pointer;
  transition: color 0.15s ease;
  -webkit-user-select: none;
  user-select: none;
  width: 100%;
  text-align: left;
}

.metadata-accordion-toggle:hover {
  color: #0284C7;
}

.metadata-accordion-body {
  display: none;
  margin-top: 8px;
  padding: 10px 12px;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 6px;
}

.metadata-accordion-body.open {
  display: block;
}

.manual-attr-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 12px;
  margin-bottom: 6px;
}

.btn-text-action {
  background: #E0F2FE;
  border: 1px solid #BAE6FD;
  color: #0284C7;
  font-size: 0.76rem;
  font-weight: 600;
  border-radius: 4px;
  padding: 3px 8px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.btn-text-action:hover {
  background: #BAE6FD;
  color: #0369A1;
}

.dynamic-attr-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 4px;
}

.dynamic-attr-row {
  display: flex;
  align-items: center;
  gap: 6px;
  animation: fadeInAttr 0.2s ease;
}

@keyframes fadeInAttr {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

.dynamic-attr-name,
.dynamic-attr-value {
  padding: 5px 8px !important;
  font-size: 0.78rem !important;
}

.dynamic-attr-type {
  padding: 5px 6px !important;
  font-size: 0.76rem !important;
  background: #FFFFFF;
  border: 1px solid #CBD5E1;
  border-radius: 4px;
  cursor: pointer;
}

.btn-remove-attr {
  background: #FEE2E2;
  border: 1px solid #FECACA;
  color: #DC2626;
  border-radius: 4px;
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 0.72rem;
  flex-shrink: 0;
  transition: all 0.15s ease;
}

.btn-remove-attr:hover {
  background: #FCA5A5;
  color: #991B1B;
}

/* ═════════════════════════════════════════════════════════════════════════
   Turtle Tab & Knowledge Steward Assistant
   ═════════════════════════════════════════════════════════════════════════ */
.turtle-layout {
  flex: 1;
  flex-direction: column;
  height: calc(100vh - 72px - 44px);
  overflow-y: auto;
  background-color: #F8FAFC;
  padding: 0;
  box-sizing: border-box;
}

.turtle-container {
  max-width: 1400px;
  width: 100%;
  margin: 0 auto;
  padding: 16px 24px 40px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  box-sizing: border-box;
}

.turtle-domain-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  background: linear-gradient(135deg, #0F172A 0%, #1E293B 100%);
  border: 1px solid #334155;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.turtle-domain-info {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.88rem;
}

.turtle-domain-icon {
  font-size: 1.1rem;
}

.turtle-domain-label {
  color: #94A3B8;
  font-weight: 500;
}

.turtle-domain-name {
  color: #38BDF8;
  font-size: 0.95rem;
}

.turtle-domain-hint {
  font-size: 0.78rem;
  color: #94A3B8;
}

.turtle-main-container {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 16px;
  flex: 1;
  min-height: 0;
}

.turtle-sidebar {
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.turtle-sidebar-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.turtle-file-list {
  list-style: none;
  padding: 0;
  margin: 0;
  overflow-y: auto;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.turtle-file-item {
  padding: 8px 10px;
  border: 1px solid #E2E8F0;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #FFFFFF;
  transition: all 0.15s ease;
}

.turtle-file-item:hover {
  background: #F8FAFC;
  border-color: #CBD5E1;
}

.turtle-file-item.active {
  background: #F0F9FF;
  border-color: #0284C7;
  box-shadow: 0 0 0 1px #0284C7 inset;
}

.turtle-file-item-info {
  flex: 1;
  min-width: 0;
}

.turtle-file-item-title {
  font-size: 0.82rem;
  font-weight: 600;
  color: #0F172A;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.turtle-file-item-meta {
  font-size: 0.72rem;
  color: #64748B;
  margin-top: 2px;
}

.turtle-file-item-delete {
  background: none;
  border: none;
  color: #94A3B8;
  cursor: pointer;
  font-size: 0.8rem;
  padding: 2px 6px;
  border-radius: 4px;
  transition: all 0.15s ease;
}

.turtle-file-item-delete:hover {
  background: #FEE2E2;
  color: #DC2626;
}

.turtle-editor {
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow-y: auto;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.turtle-editor-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}

.turtle-editor-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.btn-danger-action {
  color: #DC2626 !important;
  border-color: #FECACA !important;
}

.btn-danger-action:hover {
  background: #FEE2E2 !important;
}

/* Knowledge Steward Toolbar */
.turtle-steward-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  padding: 8px 12px;
  background: linear-gradient(90deg, #F0F9FF 0%, #E0F2FE 100%);
  border: 1px solid #BAE6FD;
  border-radius: 6px;
}

.turtle-steward-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  font-size: 0.8rem;
  color: #0369A1;
}

.steward-bot-icon {
  font-size: 1rem;
}

.turtle-steward-buttons {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.steward-action-btn {
  background: #FFFFFF;
  border: 1px solid #7DD3FC;
  color: #0369A1;
  border-radius: 4px;
  padding: 5px 10px;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.steward-action-btn:hover {
  background: #0284C7;
  border-color: #0284C7;
  color: #FFFFFF;
  box-shadow: 0 1px 3px rgba(2, 132, 199, 0.25);
}

.turtle-assist-result {
  padding: 10px 12px;
  border-radius: 6px;
  font-size: 0.82rem;
  line-height: 1.45;
  animation: fadeInResult 0.2s ease;
}

@keyframes fadeInResult {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

.turtle-assist-result.success {
  background: #ECFDF5;
  border: 1px solid #A7F3D0;
  color: #065F46;
}

.turtle-assist-result.warning {
  background: #FFFBEB;
  border: 1px solid #FDE68A;
  color: #92400E;
}

.turtle-assist-result.error {
  background: #FEF2F2;
  border: 1px solid #FECACA;
  color: #991B1B;
}

.turtle-code-area {
  font-family: 'Fira Code', 'Consolas', monospace;
  font-size: 0.82rem;
  line-height: 1.5;
  background: #0F172A;
  color: #F8FAFC;
  border: 1px solid #334155;
  border-radius: 6px;
  padding: 12px;
  resize: vertical;
}

.turtle-code-area:focus {
  outline: none;
  border-color: #38BDF8;
  box-shadow: 0 0 0 2px rgba(56, 189, 248, 0.25);
}

/* ==========================================================================
   Transcript Importer & Meeting Notes Ingestion Styles
   ========================================================================== */

.create-domain-tab-nav {
  display: flex;
  gap: 8px;
  border-bottom: 2px solid #E2E8F0;
  margin-bottom: 16px;
  padding-bottom: 2px;
}

.create-tab-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  background: transparent;
  border: none;
  border-bottom: 3px solid transparent;
  margin-bottom: -4px;
  font-family: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  color: #64748B;
  cursor: pointer;
  border-radius: 6px 6px 0 0;
  transition: all 0.2s ease;
}

.create-tab-btn:hover {
  color: #003B46;
  background: #F8FAFC;
}

.create-tab-btn.active {
  color: #003B46;
  border-bottom-color: #007A78;
  background: #F0FDF4;
}

.create-tab-badge {
  display: inline-block;
  padding: 2px 8px;
  font-size: 0.7rem;
  font-weight: 700;
  border-radius: 12px;
  background: linear-gradient(135deg, #007A78, #003B46);
  color: #FFFFFF;
  letter-spacing: 0.3px;
}

.create-domain-pane {
  animation: fadeInPane 0.2s ease-in-out;
}

@keyframes fadeInPane {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* File Import Source Box & Dropzone */
.transcript-source-box {
  background: #FFFFFF;
  border: 1.5px solid #E2E8F0;
  border-radius: 10px;
  padding: 14px;
  margin-bottom: 12px;
}

.transcript-source-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 12px;
}

.transcript-source-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

.transcript-dropzone {
  border: 2px dashed #CBD5E1;
  border-radius: 8px;
  padding: 16px 20px;
  text-align: center;
  background: #F8FAFC;
  cursor: pointer;
  transition: all 0.2s ease;
}

.transcript-dropzone:hover {
  border-color: #007A78;
  background: #F0FDF4;
}

.transcript-dropzone.dragover {
  border-color: #2563EB;
  background: #EFF6FF;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.dropzone-content {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.dropzone-icon {
  font-size: 1.5rem;
}

.dropzone-text-group {
  display: flex;
  flex-direction: column;
  text-align: left;
}

.dropzone-title {
  font-size: 0.84rem;
  font-weight: 700;
  color: #1E293B;
}

.dropzone-subtitle {
  font-size: 0.72rem;
  color: #64748B;
}

/* Loaded File Information Bar */
.transcript-loaded-file-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 10px;
  padding: 8px 12px;
  background: #ECFDF5;
  border: 1px solid #A7F3D0;
  border-radius: 6px;
  animation: fadeInBar 0.25s ease;
}

@keyframes fadeInBar {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

.loaded-file-tag {
  font-size: 0.72rem;
  font-weight: 700;
  color: #065F46;
  background: #D1FAE5;
  padding: 3px 8px;
  border-radius: 4px;
}

/* File Browser Modal (Simulated Explorer) */
.file-browser-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(15, 23, 42, 0.6);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: fadeInBackdrop 0.15s ease;
}

@keyframes fadeInBackdrop {
  from { opacity: 0; }
  to { opacity: 1; }
}

.file-browser-modal {
  width: 860px;
  max-width: 95vw;
  height: 540px;
  max-height: 90vh;
  background: #FFFFFF;
  border-radius: 10px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #CBD5E1;
}

.file-browser-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 16px;
  background: #003B46;
  color: #FFFFFF;
}

.file-browser-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 0.92rem;
}

.file-browser-close-btn {
  background: transparent;
  border: none;
  color: #FFFFFF;
  font-size: 1.1rem;
  cursor: pointer;
  border-radius: 4px;
  padding: 2px 6px;
  transition: background 0.15s;
}

.file-browser-close-btn:hover {
  background: rgba(255, 255, 255, 0.2);
}

.file-browser-path-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 16px;
  background: #F8FAFC;
  border-bottom: 1px solid #E2E8F0;
  font-size: 0.78rem;
}

.fb-path-breadcrumb {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1;
  color: #475569;
}

.fb-path-badge {
  font-size: 0.7rem;
  font-weight: 600;
  color: #007A78;
  background: #E6FFFA;
  padding: 2px 8px;
  border-radius: 12px;
  border: 1px solid #B2F5EA;
}

.file-browser-body {
  display: grid;
  grid-template-columns: 1fr 350px;
  flex: 1;
  min-height: 0;
}

.file-browser-table-wrap {
  overflow-y: auto;
  border-right: 1px solid #E2E8F0;
}

.file-browser-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.78rem;
}

.file-browser-table th {
  background: #F1F5F9;
  color: #475569;
  font-weight: 600;
  text-align: left;
  padding: 8px 12px;
  border-bottom: 1px solid #CBD5E1;
  position: sticky;
  top: 0;
  z-index: 2;
}

.file-browser-row {
  cursor: pointer;
  border-bottom: 1px solid #F1F5F9;
  transition: background 0.15s ease;
}

.file-browser-row:hover {
  background: #F8FAFC;
}

.file-browser-row.selected {
  background: #E0F2FE !important;
  color: #0369A1;
}

.file-browser-row td {
  padding: 8px 12px;
}

.fb-table-icon {
  margin-right: 6px;
}

.file-browser-preview-wrap {
  display: flex;
  flex-direction: column;
  min-height: 0;
  background: #F8FAFC;
}

.fb-preview-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 12px;
  border-bottom: 1px solid #E2E8F0;
  background: #FFFFFF;
}

.fb-preview-code {
  flex: 1;
  margin: 0;
  padding: 12px;
  font-family: 'SFMono-Regular', Consolas, Menlo, monospace;
  font-size: 0.73rem;
  line-height: 1.45;
  overflow-y: auto;
  white-space: pre-wrap;
  word-break: break-word;
  color: #334155;
  background: #F8FAFC;
}

.file-browser-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 16px;
  background: #F1F5F9;
  border-top: 1px solid #CBD5E1;
}

.fb-selected-info {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  max-width: 440px;
}

.fb-selected-input {
  flex: 1;
  height: 32px;
  padding: 0 8px;
  border: 1px solid #CBD5E1;
  border-radius: 4px;
  font-size: 0.78rem;
  background: #FFFFFF;
  font-weight: 600;
  color: #0F172A;
}

.fb-action-btns {
  display: flex;
  gap: 8px;
  align-items: center;
}

.transcript-textarea {
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
  font-size: 0.82rem;
  line-height: 1.5;
  resize: vertical;
  min-height: 130px;
}

/* Analysis Results Section */
.transcript-analysis-result {
  background: #F8FAFC;
  border: 1.5px solid #CBD5E1;
  border-radius: 10px;
  padding: 16px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}

.transcript-result-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  border-bottom: 1px solid #E2E8F0;
  padding-bottom: 10px;
}

.transcript-confidence-badge {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 4px 10px;
  background: #ECFDF5;
  color: #047857;
  border: 1px solid #A7F3D0;
  border-radius: 12px;
}

/* Triples Table */
.transcript-triples-scrollbox {
  max-height: 170px;
  overflow-y: auto;
  border: 1px solid #E2E8F0;
  border-radius: 6px;
  background: #FFFFFF;
  padding: 6px;
  margin-top: 6px;
}

.transcript-triple-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 8px;
  font-size: 0.78rem;
  border-bottom: 1px solid #F1F5F9;
  font-family: 'SFMono-Regular', Consolas, Menlo, monospace;
}

.transcript-triple-row:last-child {
  border-bottom: none;
}

.triple-sub {
  color: #0369A1;
  font-weight: 600;
}

.triple-pred {
  color: #475569;
  font-size: 0.72rem;
}

.triple-pred code {
  color: #007A78;
  font-weight: 700;
  background: #F0FDF4;
  padding: 1px 4px;
  border-radius: 3px;
}

.triple-obj {
  color: #047857;
  font-weight: 600;
}

/* Clarification Questions */
.transcript-questions-header {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
}

.transcript-questions-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.transcript-question-item {
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-left: 4px solid #007A78;
  border-radius: 6px;
  padding: 10px 12px;
}

.question-title {
  font-size: 0.84rem;
  color: #1E293B;
  margin-bottom: 4px;
}

.question-rationale {
  font-size: 0.74rem;
  color: #64748B;
  margin-bottom: 8px;
}

.question-options-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-left: 4px;
}

.transcript-question-option {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 0.8rem;
  color: #334155;
  cursor: pointer;
}

.transcript-question-option input[type="radio"] {
  margin-top: 3px;
  cursor: pointer;
}

/* Transcript Target Mode Segmented Control */
.transcript-target-mode-wrap {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid #CBD5E1;
}

.transcript-mode-segmented {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 8px;
}

.transcript-mode-pill {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: #FFFFFF;
  border: 1.5px solid #CBD5E1;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  -webkit-user-select: none;
  user-select: none;
}

.transcript-mode-pill:hover {
  background: #F8FAFC;
  border-color: #94A3B8;
}

.transcript-mode-pill.active {
  background: #EFF6FF;
  border-color: #2563EB;
  box-shadow: 0 0 0 1px #2563EB, 0 2px 4px rgba(37, 99, 235, 0.1);
}

.transcript-mode-pill#pillModeMerge.active {
  background: #ECFDF5;
  border-color: #059669;
  box-shadow: 0 0 0 1px #059669, 0 2px 4px rgba(5, 150, 105, 0.1);
}

.transcript-mode-pill .mode-icon {
  font-size: 1.25rem;
}

.transcript-mode-pill .mode-text {
  font-size: 0.84rem;
  color: #1E293B;
}

/* Agent Merge Plan & Diff Badges */
.transcript-agent-plan-box {
  margin-top: 12px;
  padding: 12px 14px;
  background: #F0FDF4;
  border-radius: 8px;
  border: 1px solid #A7F3D0;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}

.transcript-diff-badges {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 6px;
}

.badge-diff {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.76rem;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 6px;
}

.badge-diff.diff-new {
  background: #ECFDF5;
  color: #065F46;
  border: 1px solid #A7F3D0;
}

.badge-diff.diff-enriched {
  background: #EFF6FF;
  color: #1D4ED8;
  border: 1px solid #BFDBFE;
}

.badge-diff.diff-edges {
  background: #FEF3C7;
  color: #92400E;
  border: 1px solid #FDE68A;
}

.badge-diff.diff-snapshot {
  background: #F1F5F9;
  color: #334155;
  border: 1px solid #CBD5E1;
}

/* ==========================================================================
   AI Proposal & Refinement Dialog Component (AiProposalDialog)
   ========================================================================== */

.modal-backdrop.ai-proposal-backdrop,
.ai-proposal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.72);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  z-index: 2600;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease;
}

.modal-backdrop.ai-proposal-backdrop.visible,
.ai-proposal-backdrop.visible {
  opacity: 1;
  pointer-events: auto;
}

.modal-dialog.ai-proposal-dialog,
.ai-proposal-dialog {
  background: #FFFFFF;
  width: 960px;
  min-width: 680px;
  max-width: 95vw;
  height: 86vh;
  min-height: 580px;
  max-height: 92vh;
  border-radius: 14px;
  box-shadow: 0 25px 60px -15px rgba(0, 0, 0, 0.35);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #CBD5E1;
  transform: translateY(16px) scale(0.98);
  transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

.modal-dialog.ai-proposal-dialog.visible,
.ai-proposal-dialog.visible {
  transform: translateY(0) scale(1);
}

.ai-proposal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 20px;
  background: linear-gradient(135deg, #003B46 0%, #07575B 100%);
  color: #FFFFFF;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.ai-proposal-header-left {
  display: flex;
  align-items: center;
  gap: 10px;
}

.ai-proposal-title-icon {
  font-size: 1.3rem;
}

.ai-proposal-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #FFFFFF;
}

.ai-proposal-conf-badge {
  font-size: 0.75rem;
  font-weight: 700;
  background: rgba(16, 185, 129, 0.25);
  border: 1px solid #10B981;
  color: #A7F3D0;
  padding: 3px 8px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
}

.ai-proposal-close-btn {
  background: transparent;
  border: none;
  color: #94A3B8;
  font-size: 1.2rem;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
  transition: all 0.15s ease;
}

.ai-proposal-close-btn:hover {
  background: rgba(255, 255, 255, 0.15);
  color: #FFFFFF;
}

.ai-proposal-version-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 20px;
  background: #F8FAFC;
  border-bottom: 1px solid #E2E8F0;
}

.ai-proposal-version-label {
  font-size: 0.75rem;
  font-weight: 700;
  color: #64748B;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.ai-proposal-version-chips {
  display: flex;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
}

.ai-prop-ver-chip {
  padding: 4px 10px;
  border-radius: 14px;
  border: 1px solid #CBD5E1;
  background: #FFFFFF;
  color: #475569;
  font-size: 0.76rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s ease;
}

.ai-prop-ver-chip:hover {
  border-color: #003B46;
  color: #003B46;
}

.ai-prop-ver-chip.active {
  background: #003B46;
  color: #FFFFFF;
  border-color: #003B46;
  box-shadow: 0 2px 4px rgba(0, 59, 70, 0.2);
}

.ai-proposal-body {
  flex: 1;
  overflow-y: auto;
  padding: 16px 20px;
  display: grid;
  grid-template-columns: 1fr 330px;
  gap: 16px;
  background: #F1F5F9;
}

@media (max-width: 860px) {
  .ai-proposal-body {
    grid-template-columns: 1fr;
  }
}

.ai-proposal-main {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.ai-proposal-card {
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-radius: 10px;
  padding: 14px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.ai-proposal-section-title {
  font-size: 0.82rem;
  font-weight: 700;
  color: #1E293B;
  margin-bottom: 10px;
}

.ai-prop-meta-row {
  display: flex;
  gap: 10px;
}

.ai-prop-badges-row {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  flex-wrap: wrap;
}

.ai-prop-triples-box {
  flex: 1;
  min-height: 180px;
  max-height: 280px;
  overflow-y: auto;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  background: #F8FAFC;
  padding: 6px;
}

.ai-proposal-aside {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.ai-proposal-aside-inner {
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-radius: 10px;
  padding: 14px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  display: flex;
  flex-direction: column;
  height: 100%;
}

.ai-prop-agent-speech {
  background: linear-gradient(135deg, #F0FDF4 0%, #ECFDF5 100%);
  border: 1px solid #A7F3D0;
  border-radius: 8px;
  padding: 10px;
  margin-bottom: 8px;
}

.agent-speech-header {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.76rem;
  color: #065F46;
  margin-bottom: 4px;
}

.agent-speech-body {
  font-size: 0.78rem;
  color: #047857;
  line-height: 1.4;
}

.ai-prop-chips-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 8px;
}

.ai-prop-chip {
  text-align: left;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 6px;
  padding: 5px 8px;
  font-size: 0.75rem;
  color: #334155;
  cursor: pointer;
  transition: all 0.15s ease;
}

.ai-prop-chip:hover {
  background: #EFF6FF;
  border-color: #93C5FD;
  color: #1D4ED8;
}

.ai-proposal-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 20px;
  background: #FFFFFF;
  border-top: 1px solid #E2E8F0;
  gap: 12px;
}

.ai-proposal-footer-right {
  display: flex;
  gap: 10px;
}

/* Human review of extracted transcript knowledge. Uses the same neutral modal
   surface, type scale and buttons as the rest of the application. */
.modal-backdrop.ai-proposal-backdrop { background: rgba(15, 23, 42, .52); }
.modal-dialog.ai-review-dialog {
  width: min(1120px, 96vw);
  max-width: 96vw;
  min-width: 0;
  height: min(92vh, 930px);
  min-height: 0;
  border-radius: var(--radius-lg);
  font-family: var(--font-body, inherit);
}
.ai-review-dialog .ai-proposal-header {
  background: #fff;
  color: #102a36;
  border-bottom: 1px solid #e2e8f0;
  padding: 16px 22px;
}
.ai-review-dialog .ai-proposal-title { color: #102a36; font-family: var(--font-heading, inherit); font-size: 1.08rem; }
.ai-review-dialog .ai-proposal-title-icon { color: #008779; font-size: 1.55rem; }
.ai-review-dialog .ai-proposal-close-btn { color: #64748b; }
.ai-review-dialog .ai-proposal-close-btn:hover { background: #f1f5f9; color: #102a36; }
.ai-review-eyebrow { color: #008779; font-size: .65rem; font-weight: 800; letter-spacing: .11em; margin-bottom: 3px; }
.ai-review-intro { display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 13px 22px; color: #334155; font-size: .83rem; }
.ai-review-intro strong { display: block; color: #102a36; }
.ai-review-intro span#aiPropSourceLabel { display: block; color: #64748b; margin-top: 2px; }
.ai-review-dialog .ai-proposal-conf-badge { color: #087466; background: #e7f7f2; border: 1px solid #b8e4d7; white-space: nowrap; }
.ai-review-dialog .ai-proposal-version-bar { padding: 7px 22px; }
.progress-stepper { padding: 12px 22px; border-top: 1px solid #eef2f5; border-bottom: 1px solid #e2e8f0; background: #fff; }
.progress-stepper ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; list-style: none; margin: 0; padding: 0; }
.progress-stepper-item { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 42px; border: 1px solid #e2e8f0; border-radius: 8px; background: #f8fafc; color: #64748b; font: inherit; font-size: .76rem; text-align: left; padding: 7px 9px; cursor: pointer; }
.progress-stepper-item:disabled { cursor: default; opacity: .7; }
.progress-stepper-item.active { background: #e7f7f2; border-color: #68cbb5; color: #07575b; font-weight: 700; }
.progress-stepper-item.completed { background: #f0fdf8; color: #087466; }
.progress-stepper-number { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 23px; height: 23px; border-radius: 50%; background: #e2e8f0; color: #475569; font-weight: 800; }
.progress-stepper-item.active .progress-stepper-number, .progress-stepper-item.completed .progress-stepper-number { background: #008779; color: #fff; }
.progress-stepper-label { line-height: 1.2; }
.ai-review-body { display: block; padding: 0 22px 20px; overflow-y: auto; background: #f8fafc; }
.ai-review-stage, .ai-review-target, .ai-review-check, .ai-review-questions { background: #fff; border: 1px solid #e2e8f0; border-radius: 10px; margin-top: 14px; padding: 14px; }
.ai-review-approval { display: flex; align-items: center; gap: 9px; margin-top: 12px; color: #334155; font: inherit; cursor: pointer; }
.ai-review-approval input { width: 17px; height: 17px; accent-color: #2563eb; }
.ai-review-section-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 11px; color: #102a36; font-size: .86rem; }
.ai-review-section-head > div:first-child { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.ai-review-section-head small { color: #64748b; font-weight: 400; }
.ai-review-step { display: inline-flex; align-items: center; justify-content: center; background: #e7f7f2; color: #087466; border-radius: 50%; width: 23px; height: 23px; font-size: .76rem; font-weight: 800; flex: none; }
.ai-review-counts { display: flex; gap: 6px; flex-wrap: wrap; }
.ai-review-counts span { padding: 4px 8px; border-radius: 999px; color: #475569; background: #f1f5f9; font-size: .72rem; white-space: nowrap; }
.ai-review-variants { display: grid; grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); gap: 8px; margin: 12px 0 14px; }
.ai-review-variant { display: flex; flex-direction: column; gap: 4px; text-align: left; min-height: 83px; white-space: normal; border: 1px solid #dbe5eb; border-radius: 8px; background: #f8fafc; color: #334155; padding: 10px; cursor: pointer; font: inherit; }
.ai-review-variant.active { border-color: #008779; background: #effbf7; box-shadow: 0 0 0 1px #008779 inset; }
.ai-review-variant strong { font-size: .79rem; }
.ai-review-variant span, .ai-review-variant small { font-size: .71rem; color: #64748b; line-height: 1.3; }
.ai-review-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 13px; }
.ai-review-explorer, .ai-review-detail { border: 1px solid #e2e8f0; border-radius: 8px; min-width: 0; background: #fff; }
.ai-review-toolbar { display: flex; justify-content: space-between; gap: 9px; padding: 8px; border-bottom: 1px solid #e2e8f0; }
.ai-review-toolbar input { max-width: 235px; height: 31px; font-size: .78rem; }
.ai-review-view-switch { display: inline-flex; background: #f1f5f9; border-radius: 7px; padding: 3px; gap: 2px; }
.ai-review-view-switch button { border: 0; border-radius: 5px; padding: 4px 11px; background: transparent; color: #475569; cursor: pointer; font: inherit; font-size: .77rem; }
.ai-review-view-switch button.active { color: #07575b; background: #fff; box-shadow: 0 1px 3px #cbd5e1; font-weight: 700; }
.ai-review-graph { height: 360px; min-height: 280px; background: radial-gradient(circle at center, #fff 0%, #f7fafc 100%); }
.ai-review-selection-bar { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; padding: 8px 10px; border-top: 1px solid #d9ece7; background: #effbf7; color: #07575b; font-size: .74rem; }
.ai-review-selection-bar .btn { padding: 5px 8px; font-size: .73rem; }
.ai-review-graph svg { width: 100%; max-height: 360px; overflow: visible; }
.ai-review-svg-edge { cursor: pointer; }
.ai-review-svg-edge line { stroke: #94a3b8; stroke-width: 2; }
.ai-review-svg-edge text { fill: #475569; font: 11px var(--font-body, sans-serif); paint-order: stroke; stroke: #fff; stroke-width: 5px; }
.ai-review-svg-edge:hover line, .ai-review-svg-edge.selected line { stroke: #008779; stroke-width: 3; }
.ai-review-svg-node { cursor: pointer; }
.ai-review-svg-node circle { fill: #dbeafe; stroke: #3b82f6; stroke-width: 2; }
.ai-review-svg-node.instance circle { fill: #d1fae5; stroke: #10b981; }
.ai-review-svg-node:hover circle { stroke-width: 4; }
.ai-review-svg-node text { fill: #1e293b; font: 11px var(--font-body, sans-serif); font-weight: 600; }
.ai-review-list { max-height: 306px; overflow-y: auto; padding: 7px; }
.ai-review-relation { display: flex; align-items: center; gap: 6px; border-bottom: 1px solid #eef2f5; padding: 5px; }
.ai-review-relation:last-child { border: 0; }
.ai-review-relation.excluded { opacity: .48; }
.ai-review-relation button { flex: 1; display: flex; gap: 6px; flex-wrap: wrap; text-align: left; border: 0; background: transparent; cursor: pointer; padding: 5px; color: #334155; font: inherit; font-size: .78rem; }
.ai-review-relation button:hover { background: #eefaf7; }
.ai-review-relation button span { color: #087466; }
.ai-review-nodes { padding: 10px; border-top: 1px solid #e2e8f0; font-size: .75rem; }
.ai-review-nodes > div { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; max-height: 110px; overflow-y: auto; }
.ai-review-node-choice { display: inline-flex; align-items: center; gap: 4px; border: 1px solid #e2e8f0; border-radius: 999px; padding: 4px 7px; cursor: pointer; }
.ai-review-explorer-foot { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; border-top: 1px solid #e2e8f0; padding: 7px 10px; color: #64748b; font-size: .72rem; }
.ai-review-link { border: 0; background: transparent; padding: 3px 0; color: #087466; font: inherit; font-size: .75rem; font-weight: 700; cursor: pointer; }
.ai-review-detail { padding: 12px; font-size: .79rem; color: #475569; }
.ai-review-detail-form { display: grid; gap: 10px; }
.ai-review-detail-form label { display: grid; gap: 4px; font-size: .73rem; font-weight: 700; color: #334155; }
.ai-review-detail-form input, .ai-review-detail-form select { width: 100%; }
.ai-review-agent { margin-top: 20px; border-top: 1px solid #e2e8f0; padding-top: 12px; }
.ai-review-agent summary, .ai-review-questions summary { cursor: pointer; color: #07575b; font-weight: 700; }
.ai-review-agent textarea { width: 100%; margin: 6px 0; }
.ai-review-agent .ai-prop-agent-speech { margin-top: 10px; background: #f1f8f7; border-color: #cce8e2; }
.ai-review-agent .ai-prop-chips-wrap { margin-bottom: 9px; }
.ai-review-agent .btn { width: 100%; justify-content: center; }
.ai-review-bottom { display: grid; grid-template-columns: 1.3fr 1fr; gap: 13px; }
.ai-review-target-options { display: flex; flex-wrap: wrap; gap: 8px 17px; margin-bottom: 10px; font-size: .79rem; }
.ai-review-target-options label { display: inline-flex; align-items: center; gap: 5px; cursor: pointer; }
.ai-review-new-fields { display: grid; grid-template-columns: minmax(0, 1fr) 80px; gap: 8px; }
.ai-review-new-fields label, #aiPropExistingTarget label { display: grid; gap: 4px; color: #475569; font-size: .73rem; font-weight: 700; }
.ai-review-new-fields .ai-review-description { grid-column: 1 / -1; }
.ai-review-new-fields input, .ai-review-new-fields textarea, #aiPropTargetSelect { width: 100%; }
#aiPropConsistency { color: #07575b; font-size: .79rem; line-height: 1.45; }
#aiPropDiffSummary { margin-top: 8px; color: #475569; font-size: .76rem; line-height: 1.4; }
.ai-review-questions { font-size: .79rem; }
.ai-review-questions > div { margin-top: 10px; }
.ai-review-footer-hint { color: #64748b; font-size: .75rem; }
.ai-review-empty { color: #64748b; font-size: .8rem; padding: 22px; text-align: center; }
@media (max-width: 850px) {
  .modal-dialog.ai-review-dialog { height: 94vh; }
  .progress-stepper { padding: 8px 12px; }
  .progress-stepper ol { gap: 3px; }
  .progress-stepper-item { justify-content: center; padding: 6px 3px; font-size: .67rem; text-align: center; flex-wrap: wrap; }
  .progress-stepper-label { width: 100%; }
  .ai-review-graph { height: 320px; }
  .ai-review-workspace, .ai-review-bottom { grid-template-columns: 1fr; }
  .ai-review-detail { min-height: 90px; }
  .ai-review-intro, .ai-review-section-head { align-items: flex-start; flex-wrap: wrap; }
  .ai-review-toolbar { flex-wrap: wrap; }
}

/* Wizard top toolbar enhancements */
.transcript-top-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 10px;
  padding: 10px 14px;
}

.transcript-top-left {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ==========================================================================
   Multi-Domain Search & Grounding ("Suche" tab)
   ========================================================================== */
.search-layout {
  flex: 1;
  height: calc(100vh - 72px - 44px);
  overflow-y: auto;
  background-color: #F8FAFC;
}

.search-container {
  max-width: 1400px;
  width: 100%;
  margin: 0 auto;
  padding: 16px 24px 40px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  box-sizing: border-box;
}

.search-toolbar-card {
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding: 8px 16px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  display: flex;
  flex-direction: column;
  position: relative;
  z-index: 50;
}

/* Compact Combobox & Actions Row */
.search-combobox-wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  position: relative;
}

.search-combobox-toggle {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #F8FAFC;
  border: 1px solid #CBD5E1;
  border-radius: 8px;
  padding: 8px 14px;
  font-size: 0.88rem;
  font-weight: 600;
  color: #0F172A;
  cursor: pointer;
  transition: all 0.15s ease;
  -webkit-user-select: none;
  user-select: none;
}

.search-combobox-toggle:hover {
  background: #F1F5F9;
  border-color: #94A3B8;
}

.search-combobox-toggle[aria-expanded="true"] {
  border-color: #00A86B;
  background: #FFFFFF;
  box-shadow: 0 0 0 3px rgba(0, 168, 107, 0.12);
}

.combobox-toggle-icon {
  font-size: 1.1rem;
}

.combobox-toggle-text {
  color: #1E293B;
}

.combobox-arrow {
  color: #64748B;
  font-size: 0.85rem;
  transition: transform 0.15s ease;
}

.search-combobox-toggle[aria-expanded="true"] .combobox-arrow {
  transform: rotate(180deg);
}

/* Floating Combobox Window / Popover (Overlays content without pushing page layout) */
.search-combobox-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  width: 100%;
  max-width: 680px;
  background: #FFFFFF;
  border: 1px solid #CBD5E1;
  border-radius: 12px;
  box-shadow: 0 16px 36px -4px rgba(0, 0, 0, 0.18), 0 6px 14px -2px rgba(0, 0, 0, 0.08);
  padding: 16px;
  z-index: 1050;
  display: flex;
  flex-direction: column;
  gap: 12px;
  animation: comboboxFadeIn 0.15s ease-out;
}

@keyframes comboboxFadeIn {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

.combobox-dropdown-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 8px;
  border-bottom: 1px solid #F1F5F9;
}

.combobox-dropdown-title {
  font-size: 0.88rem;
  font-weight: 700;
  color: #0F172A;
}

.btn-close-dropdown {
  background: none;
  border: none;
  font-size: 1.2rem;
  color: #94A3B8;
  cursor: pointer;
  padding: 0 4px;
  line-height: 1;
}

.btn-close-dropdown:hover {
  color: #0F172A;
}

.combobox-filter-box {
  position: relative;
  display: flex;
  align-items: center;
}

.combobox-filter-icon {
  position: absolute;
  left: 10px;
  font-size: 0.82rem;
  color: #94A3B8;
  pointer-events: none;
}

.combobox-filter-input {
  width: 100%;
  padding: 7px 10px 7px 32px;
  font-size: 0.84rem;
  border: 1px solid #CBD5E1;
  border-radius: 6px;
  outline: none;
  background: #F8FAFC;
  transition: all 0.15s ease;
}

.combobox-filter-input:focus {
  background: #FFFFFF;
  border-color: #00A86B;
  box-shadow: 0 0 0 2px rgba(0, 168, 107, 0.12);
}

.combobox-dropdown-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 8px;
  border-top: 1px solid #F1F5F9;
}

.search-domain-actions {
  display: flex;
  gap: 6px;
}

.btn-search-text-action {
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
  padding: 5px 12px;
  font-family: var(--font-main);
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: -0.005em;
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.15s ease;
}

.btn-search-text-action:hover {
  background: #F1F5F9;
  color: var(--text-primary);
  border-color: var(--border-strong);
}

.search-domains-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  max-height: 240px;
  overflow-y: auto;
  padding: 4px 2px;
}

.search-domain-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #F8FAFC;
  border: 1px solid var(--border-subtle);
  border-radius: 9999px;
  padding: 5px 12px;
  font-family: var(--font-main);
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.15s ease;
  -webkit-user-select: none;
  user-select: none;
}

.search-domain-chip:hover {
  background: #F1F5F9;
  border-color: var(--border-strong);
  color: var(--text-primary);
}

.search-domain-chip.active {
  background: #EFF6FF;
  border-color: #3B82F6;
  color: #1D4ED8;
  font-weight: 600;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15);
}

.domain-chip-check {
  font-weight: 700;
  font-size: 0.85rem;
  margin-left: 2px;
}

.search-input-card {
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding: 16px 20px;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.search-input-box {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #FFFFFF;
  border: 1.5px solid #CBD5E1;
  border-radius: var(--radius-md);
  padding: 6px 10px 6px 16px;
  transition: border-color 0.2s, box-shadow 0.2s;
  width: 100%;
}

.search-input-box:focus-within {
  border-color: #2563EB;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.search-text-input {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  border: none;
  outline: none;
  font-family: var(--font-main);
  font-size: 0.95rem;
  font-weight: 400;
  letter-spacing: -0.01em;
  color: var(--text-primary);
  background: transparent;
  padding: 6px 0;
}

.search-text-input::placeholder {
  color: #94A3B8;
  font-family: var(--font-main);
  font-weight: 400;
  opacity: 1;
}

.search-input-error {
  border-color: #EF4444 !important;
}

.search-clear-btn {
  background: none;
  border: none;
  font-size: 1.3rem;
  color: var(--text-muted);
  cursor: pointer;
  padding: 0 6px;
  line-height: 1;
}

.search-submit-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 20px;
  font-family: var(--font-main);
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  background: var(--brand-petrol);
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  flex-shrink: 0;
  width: auto;
  white-space: nowrap;
  transition: all 0.18s ease;
  margin: 0;
}

.search-submit-btn:hover {
  background: var(--brand-petrol-hover);
  box-shadow: 0 2px 8px rgba(0, 59, 70, 0.25);
  transform: translateY(-1px);
}

.search-quick-queries {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.quick-queries-label {
  font-family: var(--font-main);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.quick-chips-wrapper {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.quick-chip {
  background: #F1F5F9;
  border: 1px solid #E2E8F0;
  border-radius: 6px;
  padding: 4px 10px;
  font-family: var(--font-main);
  font-size: 0.8rem;
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.15s ease;
}

.quick-chip:hover {
  background: #E2E8F0;
  color: var(--text-primary);
  border-color: #CBD5E1;
}

/* Checkboxes stacked vertically beneath the search input */
.search-options-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding-top: 10px;
  border-top: 1px solid #F1F5F9;
}

.search-toggle-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-main);
  font-size: 0.84rem;
  font-weight: 400;
  letter-spacing: -0.005em;
  color: var(--text-secondary);
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  transition: color 0.15s ease;
}

.search-toggle-label strong {
  font-weight: 600;
  color: #1E293B;
}

.search-toggle-label:hover {
  color: var(--text-primary);
}

.info-tooltip-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  margin-left: 6px;
  color: #64748B;
  cursor: help;
  -webkit-user-select: none;
  user-select: none;
  transition: transform 0.15s ease, color 0.15s ease;
}

.info-tooltip-badge:hover {
  color: #2563EB;
  transform: scale(1.15);
}

.search-loading-box {
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding: 36px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  box-shadow: var(--shadow-sm);
}

.search-spinner {
  width: 32px;
  height: 32px;
  border: 3px solid #E2E8F0;
  border-top-color: #2563EB;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

.search-empty-state {
  background: #FFFFFF;
  border: 1px dashed #CBD5E1;
  border-radius: var(--radius-md);
  padding: 48px 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.search-empty-icon {
  font-size: 2.2rem;
  margin-bottom: 8px;
}

.search-empty-title {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--text-primary);
  letter-spacing: -0.015em;
  margin-bottom: 6px;
}

.search-empty-hint {
  font-family: var(--font-main);
  font-size: 0.86rem;
  font-weight: 400;
  color: var(--text-muted);
  max-width: 500px;
  line-height: 1.5;
}

.search-results-container {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.search-comparison-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(420px, 1fr));
  gap: 16px;
  align-items: stretch;
}

.search-card {
  background: #FFFFFF;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--border-subtle);
}

.search-card-guided {
  border-top: 4px solid #10B981;
}

.search-card-baseline {
  border-top: 4px solid #F59E0B;
  background: #FFFCF5;
}

.search-card-header {
  padding: 14px 18px;
  border-bottom: 1px solid var(--border-subtle);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.search-card-badge-guided {
  background: #ECFDF5;
  color: #047857;
  font-weight: 700;
  font-size: 0.75rem;
  padding: 2px 8px;
  border-radius: 4px;
  border: 1px solid #A7F3D0;
}

.search-card-badge-baseline {
  background: #FFFBEB;
  color: #B45309;
  font-weight: 700;
  font-size: 0.75rem;
  padding: 2px 8px;
  border-radius: 4px;
  border: 1px solid #FDE68A;
}

.search-card-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-top: 2px;
}

.search-card-metrics {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
}

.metric-pill {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 9999px;
}

.metric-time {
  background: #F1F5F9;
  color: var(--text-secondary);
  border: 1px solid #E2E8F0;
}

.metric-facts {
  background: #EFF6FF;
  color: #1D4ED8;
  border: 1px solid #BFDBFE;
}

.metric-grounding {
  background: #DCFCE7;
  color: #15803D;
  border: 1px solid #86EFAC;
}

.metric-risk {
  background: #FEF3C7;
  color: #B45309;
  border: 1px solid #FCD34D;
}

.search-card-body {
  padding: 18px;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 14px;
}

.search-answer-box {
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--text-primary);
}

.search-bullet-list {
  margin: 8px 0 8px 20px;
}

.search-paragraph {
  margin-bottom: 8px;
}

.search-code-inline {
  background: #F1F5F9;
  border: 1px solid #E2E8F0;
  padding: 2px 6px;
  border-radius: 4px;
  font-family: monospace;
  font-size: 0.85em;
}

.search-domains-used {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  border-top: 1px solid var(--border-subtle);
  padding-top: 12px;
  margin-top: 6px;
}

.domain-used-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #F8FAFC;
  border: 1px solid var(--border-subtle);
  border-radius: 9999px;
  padding: 2px 10px;
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--text-secondary);
}

.baseline-warning-note {
  background: #FFFBEB;
  border: 1px solid #FDE68A;
  border-radius: var(--radius-sm);
  padding: 8px 12px;
  font-size: 0.8rem;
  color: #92400E;
  margin-top: 10px;
}

.search-facts-card {
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}

.search-facts-header {
  padding: 14px 18px;
  border-bottom: 1px solid var(--border-subtle);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.search-facts-title-group {
  display: flex;
  align-items: center;
  gap: 10px;
}

.search-facts-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 8px;
}

.facts-count-badge {
  background: #E0F2FE;
  color: #0284C7;
  font-weight: 700;
  font-size: 0.76rem;
  border-radius: 9999px;
  padding: 2px 8px;
}

.facts-filter-input {
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-sm);
  padding: 5px 10px;
  font-size: 0.82rem;
  outline: none;
  width: 180px;
  transition: all 0.15s ease;
}

.facts-filter-input:focus {
  border-color: #2563EB;
  width: 220px;
}

.search-facts-table-wrapper {
  overflow-x: auto;
  max-height: 400px;
}

.search-facts-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.84rem;
  text-align: left;
}

.search-facts-table th {
  background: #F8FAFC;
  color: var(--text-secondary);
  font-weight: 600;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border-subtle);
  position: sticky;
  top: 0;
  z-index: 1;
}

.search-facts-table td {
  padding: 10px 14px;
  border-bottom: 1px solid #F1F5F9;
  color: var(--text-primary);
  vertical-align: middle;
}

.search-facts-table tr:hover {
  background: #F8FAFC;
}

.fact-domain-tag {
  background: #F1F5F9;
  border: 1px solid #E2E8F0;
  border-radius: 4px;
  padding: 2px 7px;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text-secondary);
  white-space: nowrap;
}

.fact-predicate-tag {
  background: #EFF6FF;
  border: 1px solid #BFDBFE;
  border-radius: 4px;
  padding: 2px 7px;
  font-family: monospace;
  font-size: 0.78rem;
  color: #1D4ED8;
  font-weight: 600;
}

.fact-confidence-pill {
  background: #ECFDF5;
  border: 1px solid #A7F3D0;
  border-radius: 9999px;
  padding: 2px 8px;
  font-size: 0.74rem;
  font-weight: 600;
  color: #047857;
  white-space: nowrap;
}

.btn-inspect-graph-fact {
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
  padding: 4px 9px;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--brand-petrol);
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}

.btn-inspect-graph-fact:hover {
  background: var(--brand-green-light);
  border-color: var(--brand-green);
  color: var(--brand-green);
}

/* ==========================================================================
   Dedicated LLM Provider Sections & Glowing Status Badges
   ========================================================================== */

.llm-provider-section {
  animation: fadeIn 0.2s ease-in-out;
}

.llm-provider-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  background: linear-gradient(135deg, #F0FDF4 0%, #EFF6FF 100%);
  border: 1px solid #BBF7D0;
  border-radius: 8px;
  padding: 10px 14px;
  margin-bottom: 14px;
}

.llm-provider-banner-icon {
  font-size: 1.4rem;
  line-height: 1;
}

.settings-input-with-action {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}

.settings-input-with-action .settings-text-input {
  width: 100%;
  padding-right: 42px;
}

.btn-input-action {
  position: absolute;
  right: 10px;
  background: transparent;
  border: none;
  cursor: pointer;
  font-size: 1rem;
  padding: 4px;
  color: #64748B;
  transition: transform 0.15s ease, color 0.15s ease;
}

.btn-input-action:hover {
  transform: scale(1.15);
  color: #0F172A;
}

.llm-connection-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  padding: 10px 14px;
}

.llm-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 0.82rem;
  font-weight: 600;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.llm-status-badge .status-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  display: inline-block;
}

/* Neutral state */
.llm-status-badge.neutral {
  background: #F1F5F9;
  border: 1px solid #CBD5E1;
  color: #64748B;
}
.llm-status-badge.neutral .status-dot {
  background: #94A3B8;
}

/* Checking state */
.llm-status-badge.checking {
  background: #FEF3C7;
  border: 1px solid #FCD34D;
  color: #92400E;
}
.llm-status-badge.checking .status-dot {
  background: #F59E0B;
  animation: pulseDot 1s infinite alternate;
}

/* Connected state - GLOWING GREEN */
.llm-status-badge.connected {
  background: #ECFDF5;
  border: 1.5px solid #10B981;
  color: #047857;
  box-shadow: 0 0 14px rgba(16, 185, 129, 0.4), 0 0 28px rgba(16, 185, 129, 0.15);
  animation: glowPulse 2.5s infinite ease-in-out;
}
.llm-status-badge.connected .status-dot {
  background: #10B981;
  box-shadow: 0 0 8px #10B981;
}

/* Error state */
.llm-status-badge.error {
  background: #FEF2F2;
  border: 1.5px solid #F87171;
  color: #B91C1C;
}
.llm-status-badge.error .status-dot {
  background: #EF4444;
}

.settings-btn-test {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #FFFFFF;
  border: 1px solid #CBD5E1;
  border-radius: 6px;
  padding: 6px 12px;
  font-size: 0.8rem;
  font-weight: 600;
  color: #1E293B;
  cursor: pointer;
  transition: all 0.15s ease;
}

.settings-btn-test:hover:not(:disabled) {
  background: #F1F5F9;
  border-color: #94A3B8;
  color: #0F172A;
}

.settings-btn-test:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

@keyframes glowPulse {
  0% {
    box-shadow: 0 0 10px rgba(16, 185, 129, 0.35);
  }
  50% {
    box-shadow: 0 0 20px rgba(16, 185, 129, 0.65), 0 0 35px rgba(16, 185, 129, 0.25);
  }
  100% {
    box-shadow: 0 0 10px rgba(16, 185, 129, 0.35);
  }
}

@keyframes pulseDot {
  from { opacity: 0.4; transform: scale(0.85); }
  to { opacity: 1; transform: scale(1.15); }
}

/* ==========================================================================
   Search Combobox & Collapsible Multi-Select (for 50+ Knowledge Graphs)
   ========================================================================== */
.search-combobox-wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  padding: 8px 12px;
  margin-top: 8px;
}

.search-combobox-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 600;
  color: #1E293B;
  padding: 4px 8px;
  border-radius: 6px;
  transition: background 0.15s;
}

.search-combobox-toggle:hover {
  background: #F1F5F9;
}

.combobox-arrow {
  color: #64748B;
  font-size: 0.8rem;
  transition: transform 0.2s ease;
}

.search-combobox-toggle[aria-expanded="true"] .combobox-arrow {
  transform: rotate(180deg);
}

.search-combobox-dropdown {
  margin-top: 8px;
  background: #FFFFFF;
  border: 1px solid #CBD5E1;
  border-radius: 8px;
  padding: 12px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.combobox-filter-box {
  margin-bottom: 10px;
}

.combobox-filter-input {
  width: 100%;
  padding: 7px 12px;
  font-size: 0.85rem;
  border: 1px solid #E2E8F0;
  border-radius: 6px;
  background: #F8FAFC;
}

.combobox-filter-input:focus {
  outline: none;
  border-color: #00A86B;
  background: #FFFFFF;
}

/* ==========================================================================
   Vector RAG Comparison Card in Search View
   ========================================================================== */
.search-card-vector {
  background: #F8FAFC;
  border: 1px solid #CBD5E1;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.search-card-badge-vector {
  background: #FEF3C7;
  color: #92400E;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.search-answer-vector {
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-radius: 6px;
  padding: 12px;
  font-size: 0.88rem;
  line-height: 1.5;
  color: #1E293B;
}

.vector-retrieved-chunks {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.vector-chunk-pill {
  font-size: 0.75rem;
  padding: 3px 8px;
  border-radius: 6px;
}

.vector-chunk-pill.pill-retrieved {
  background: #D1FAE5;
  color: #065F46;
  border: 1px solid #A7F3D0;
}

.vector-chunk-pill.pill-missed {
  background: #FEE2E2;
  color: #991B1B;
  border: 1px solid #FECACA;
  text-decoration: line-through;
}

/* ==========================================================================
   Vektordatenbank & Chunks: Centered Framed Layout & Sleek Toolbar
   ========================================================================== */
.rag-layout {
  flex: 1;
  height: calc(100vh - 72px - 44px);
  overflow-y: auto;
  background-color: #F8FAFC;
}

.rag-container {
  max-width: 1400px;
  width: 100%;
  margin: 0 auto;
  padding: 16px 24px 40px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  box-sizing: border-box;
}

/* Sleek Single-Line Action Toolbar */
.rag-toolbar-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  background: #FFFFFF;
  border: 1px solid var(--border-subtle, #E2E8F0);
  border-radius: var(--radius-md, 8px);
  padding: 8px 16px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.rag-toolbar-left {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  max-width: 440px;
}

.rag-search-box {
  position: relative;
  flex: 1;
  display: flex;
  align-items: center;
}

.rag-search-icon {
  position: absolute;
  left: 10px;
  color: #94A3B8;
  font-size: 0.85rem;
  pointer-events: none;
}

.rag-filter-input {
  width: 100%;
  padding: 6px 10px 6px 32px;
  font-size: 0.84rem;
  border: 1px solid #CBD5E1;
  border-radius: 6px;
  background: #FFFFFF;
  color: #0F172A;
  transition: border-color 0.15s ease;
}

.rag-filter-input:focus {
  outline: none;
  border-color: #00A86B;
  box-shadow: 0 0 0 2px rgba(0, 168, 107, 0.15);
}

.rag-badge-count {
  background: #F1F5F9;
  color: #334155;
  font-size: 0.8rem;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid #E2E8F0;
  white-space: nowrap;
}

.rag-badge-status {
  background: #ECFDF5;
  color: #065F46;
  font-size: 0.8rem;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid #A7F3D0;
  white-space: nowrap;
}

.rag-toolbar-center {
  display: flex;
  align-items: center;
  gap: 8px;
}

.rag-toolbar-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.btn-outline-danger {
  color: #DC2626 !important;
  border-color: #FCA5A5 !important;
}

.btn-outline-danger:hover {
  background: #FEF2F2 !important;
  border-color: #EF4444 !important;
  color: #B91C1C !important;
}

/* Full-Width Table Wrapper & Rows */
.rag-table-wrapper {
  background: #FFFFFF;
  border: 1px solid var(--border-subtle, #E2E8F0);
  border-radius: var(--radius-md, 8px);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  overflow-x: auto;
  overflow-y: auto;
  max-height: calc(100vh - 190px);
}

.rag-chunks-table {
  width: 100%;
  border-collapse: collapse;
}

.rag-chunk-row {
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  transition: background-color 0.12s ease;
}

.rag-chunk-row:hover {
  background-color: #F8FAFC !important;
}

.rag-chunk-row.selected-row {
  background-color: #F0FDF4 !important;
}

.rag-table-title-cell {
  display: flex;
  align-items: center;
  gap: 8px;
}

.rag-doc-icon {
  font-size: 1rem;
}

.rag-doc-title-text {
  font-weight: 600;
  color: #0F172A;
  font-size: 0.88rem;
}

.rag-table-snippet {
  font-size: 0.82rem;
  color: #475569;
  line-height: 1.4;
  display: block;
  max-width: 540px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rag-table-tags-wrap {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}

.rag-tag-pill {
  background: #F1F5F9;
  color: #475569;
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 0.72rem;
  white-space: nowrap;
}

.btn-action-icon {
  background: none;
  border: none;
  cursor: pointer;
  padding: 3px 6px;
  border-radius: 4px;
  font-size: 0.85rem;
  transition: all 0.15s ease;
}

.btn-action-icon:hover {
  background: #E2E8F0;
}

.btn-delete-chunk:hover {
  background: #FEE2E2 !important;
}

/* Ingestion Form in Modal */
.rag-ingest-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.rag-form-group {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.rag-form-row {
  display: flex;
  gap: 10px;
}

.rag-form-label {
  font-size: 0.8rem;
  font-weight: 600;
  color: #334155;
}

.rag-text-input {
  width: 100%;
  padding: 8px 12px;
  font-size: 0.85rem;
  border: 1px solid #CBD5E1;
  border-radius: 6px;
  background: #FFFFFF;
  color: #0F172A;
  transition: border-color 0.15s ease;
}

.rag-text-input:focus {
  outline: none;
  border-color: #00A86B;
  box-shadow: 0 0 0 2px rgba(0, 168, 107, 0.15);
}

.rag-select {
  width: 100%;
  padding: 7px 10px;
  font-size: 0.82rem;
  border: 1px solid #CBD5E1;
  border-radius: 6px;
  background: #FFFFFF;
  color: #0F172A;
  transition: border-color 0.15s ease;
  outline: none;
}

.rag-select:focus {
  border-color: #00A86B;
  box-shadow: 0 0 0 2px rgba(0, 168, 107, 0.15);
}

.rag-advanced-params-card {
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 6px;
}

.rag-params-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.rag-params-title {
  font-size: 0.82rem;
  font-weight: 700;
  color: #334155;
  letter-spacing: 0.01em;
}

.rag-textarea {
  width: 100%;
  padding: 10px 12px;
  font-size: 0.85rem;
  font-family: inherit;
  border: 1px solid #CBD5E1;
  border-radius: 6px;
  background: #FFFFFF;
  color: #0F172A;
  resize: vertical;
  line-height: 1.5;
  transition: border-color 0.15s ease;
}

.rag-textarea:focus {
  outline: none;
  border-color: #00A86B;
  box-shadow: 0 0 0 2px rgba(0, 168, 107, 0.15);
}

.rag-file-dropzone {
  border: 1px dashed #CBD5E1;
  border-radius: 6px;
  background: #F8FAFC;
  padding: 12px;
  text-align: center;
  position: relative;
  transition: all 0.15s ease;
}

.rag-file-dropzone.dropzone-active {
  border-color: #00A86B;
  background: #F0FDF4;
}

.rag-file-input {
  display: none;
}

.dropzone-content {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 0.82rem;
  color: #64748B;
}

.dropzone-icon {
  font-size: 1.1rem;
}

.rag-checkbox-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.82rem;
  color: #475569;
  cursor: pointer;
}

.rag-feedback-msg {
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 0.82rem;
  font-weight: 500;
  margin-top: 6px;
}

.rag-feedback-success {
  background: #F0FDF4;
  border: 1px solid #BBF7D0;
  color: #166534;
}

.rag-feedback-info {
  background: #EFF6FF;
  border: 1px solid #BFDBFE;
  color: #1E40AF;
}

/* Stubs for legacy or external callers */
.rag-sim-row {
  padding: 8px 10px;
  border-radius: 6px;
  border: 1px solid #E2E8F0;
  background: #FFFFFF;
  display: flex;
  justify-content: space-between;
  font-size: 0.82rem;
}

.rag-synthesis-box {
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 6px;
  padding: 10px;
  font-size: 0.82rem;
}

.rag-synthesis-box.rag-synthesis-danger {
  background: #FFF1F2;
  border-color: #FECDD3;
}

/* ═══════════════════════════════════════════════════════════════════ */
/* Knowledge Steward: Nav Brand Home & Clickability                   */
/* ═══════════════════════════════════════════════════════════════════ */
.nav-brand {
  cursor: pointer !important;
  -webkit-user-select: none;
  user-select: none;
  transition: opacity 0.15s ease, transform 0.1s ease;

/* ==========================================================================
   Toast Notification System
   ========================================================================== */
.steward-toast-container {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: none;
}

.steward-toast {
  pointer-events: auto;
  min-width: 280px;
  max-width: 420px;
  padding: 12px 16px;
  border-radius: var(--radius-md, 8px);
  background: #FFFFFF;
  color: var(--text-main, #1E293B);
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.12), 0 8px 10px -6px rgba(0, 0, 0, 0.08);
  border: 1px solid var(--border-color, #E2E8F0);
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  font-family: var(--font-main, sans-serif);
  line-height: 1.4;
  opacity: 0;
  transform: translateY(-10px) scale(0.96);
  transition: opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.steward-toast.visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.steward-toast.hiding {
  opacity: 0;
  transform: translateY(-8px) scale(0.95);
}

.steward-toast.toast-success {
  border-left: 4px solid var(--color-success, #00A86B);
}

.steward-toast.toast-error {
  border-left: 4px solid var(--color-danger, #EF4444);
}

.steward-toast.toast-warning {
  border-left: 4px solid var(--color-warning, #F59E0B);
}

.steward-toast.toast-info {
  border-left: 4px solid var(--color-primary, #003B46);
}

.steward-toast .toast-icon {
  font-size: 16px;
  flex-shrink: 0;
}

.steward-toast .toast-content {
  flex: 1;
  word-break: break-word;
}

.steward-toast .toast-close {
  background: none;
  border: none;
  font-size: 14px;
  color: var(--text-muted, #64748B);
  cursor: pointer;
  padding: 2px;
  line-height: 1;
  border-radius: 4px;
}

.steward-toast .toast-close:hover {
  color: var(--text-main, #1E293B);
}

}

.nav-brand:hover {
  opacity: 0.88;
}

.nav-brand:active {
  transform: scale(0.99);
}

.nav-brand * {
  pointer-events: none;
}

/* ═══════════════════════════════════════════════════════════════════ */
/* Assets Workbench: View Modes & Split Screen                         */
/* ═══════════════════════════════════════════════════════════════════ */
.assets-view-modes {
  display: flex;
  align-items: center;
  gap: 2px;
  background: #E2E8F0;
  padding: 2px;
  border-radius: 6px;
}

.assets-mode-btn {
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 500;
  border: none;
  background: transparent;
  color: #475569;
  cursor: pointer;
  border-radius: 4px;
  transition: all 0.15s ease;
  -webkit-user-select: none;
  user-select: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.assets-mode-btn:hover {
  color: #0F172A;
  background: #CBD5E1;
}

.assets-mode-btn.active {
  background: #FFFFFF;
  color: #0284C7;
  font-weight: 600;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}

.assets-workbench-body {
  flex: 1;
  display: flex;
  overflow: hidden;
  position: relative;
  min-height: 280px;
}

.assets-pane-editor {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-width: 0;
}

.assets-pane-divider {
  width: 5px;
  background: #E2E8F0;
  cursor: col-resize;
  transition: background 0.15s ease;
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
}

.assets-pane-divider:hover,
.assets-pane-divider.is-active {
  background: #0284C7;
}

.assets-pane-preview {
  flex: 1;
  overflow-y: auto;
  padding: 20px 24px;
  background: #FFFFFF;
  min-width: 0;
  box-sizing: border-box;
}

/* Disable text selection and show resize cursor while dragging a divider */
.is-resizing,
.is-resizing * {
  -webkit-user-select: none !important;
  user-select: none !important;
}

.is-resizing {
  cursor: col-resize;
}

/* ═══════════════════════════════════════════════════════════════════ */
/* Markdown Rendered View                                              */
/* ═══════════════════════════════════════════════════════════════════ */
.markdown-rendered-view {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: #1E293B;
  line-height: 1.68;
  font-size: 0.92rem;
  max-width: 860px;
}

.markdown-rendered-view h1 {
  font-size: 1.55rem;
  font-weight: 700;
  color: #0F172A;
  margin-top: 1rem;
  margin-bottom: 0.7rem;
  padding-bottom: 8px;
  border-bottom: 2px solid #E2E8F0;
  letter-spacing: -0.01em;
}

.markdown-rendered-view h2 {
  font-size: 1.3rem;
  font-weight: 600;
  color: #0F172A;
  margin-top: 1.4rem;
  margin-bottom: 0.6rem;
  padding-bottom: 6px;
  border-bottom: 1px solid #F1F5F9;
}

.markdown-rendered-view h3 {
  font-size: 1.1rem;
  font-weight: 600;
  color: #1E293B;
  margin-top: 1.1rem;
  margin-bottom: 0.4rem;
}

.markdown-rendered-view h4,
.markdown-rendered-view h5,
.markdown-rendered-view h6 {
  font-size: 0.95rem;
  font-weight: 600;
  color: #334155;
  margin-top: 0.9rem;
  margin-bottom: 0.3rem;
}

.markdown-rendered-view p {
  margin-bottom: 0.85rem;
  color: #334155;
}

.markdown-rendered-view strong {
  font-weight: 600;
  color: #0F172A;
}

.markdown-rendered-view em {
  font-style: italic;
}

.markdown-rendered-view del {
  text-decoration: line-through;
  opacity: 0.65;
}

.markdown-rendered-view .md-hr {
  border: none;
  border-top: 1px solid #E2E8F0;
  margin: 1.4rem 0;
}

.markdown-rendered-view .md-blockquote {
  border-left: 4px solid #0284C7;
  background: #F0F9FF;
  padding: 10px 16px;
  border-radius: 0 6px 6px 0;
  margin: 0.9rem 0;
  color: #0369A1;
  font-style: italic;
}

/* GitHub style alerts */
.markdown-rendered-view .md-alert {
  padding: 12px 16px;
  border-radius: 6px;
  margin: 12px 0;
  font-size: 0.88rem;
  border-left: 4px solid;
}

.markdown-rendered-view .md-alert-note {
  background: #F0F9FF;
  border-color: #0284C7;
  color: #0C4A6E;
}

.markdown-rendered-view .md-alert-tip {
  background: #F0FDF4;
  border-color: #16A34A;
  color: #14532D;
}

.markdown-rendered-view .md-alert-warning {
  background: #FFFBEB;
  border-color: #D97706;
  color: #78350F;
}

.markdown-rendered-view .md-alert-important {
  background: #FAF5FF;
  border-color: #9333EA;
  color: #581C87;
}

.markdown-rendered-view .md-alert-caution {
  background: #FEF2F2;
  border-color: #DC2626;
  color: #7F1D1D;
}

.markdown-rendered-view .md-alert-badge {
  font-weight: 700;
  margin-right: 6px;
}

/* Lists */
.markdown-rendered-view .md-ul,
.markdown-rendered-view .md-ol {
  padding-left: 24px;
  margin-bottom: 0.9rem;
}

.markdown-rendered-view li {
  margin-bottom: 4px;
  color: #334155;
}

.markdown-rendered-view .md-task-item {
  list-style: none;
  margin-left: -18px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.markdown-rendered-view .md-task-item input {
  margin: 0;
  accent-color: #0284C7;
}

/* Tables */
.markdown-rendered-view .md-table-wrap {
  overflow-x: auto;
  margin: 14px 0;
  border: 1px solid #E2E8F0;
  border-radius: 6px;
}

.markdown-rendered-view .md-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.84rem;
  text-align: left;
}

.markdown-rendered-view .md-table th {
  background: #F8FAFC;
  padding: 10px 14px;
  font-weight: 600;
  color: #334155;
  border-bottom: 2px solid #E2E8F0;
}

.markdown-rendered-view .md-table td {
  padding: 9px 14px;
  border-bottom: 1px solid #EDF2F7;
  color: #1E293B;
}

.markdown-rendered-view .md-table tr:last-child td {
  border-bottom: none;
}

.markdown-rendered-view .md-table tr:nth-child(even) td {
  background: #FAFAFA;
}

/* Inlines & Code */
.markdown-rendered-view .md-inline-code {
  font-family: 'JetBrains Mono', 'Fira Code', Menlo, Monaco, Consolas, monospace;
  background: #F1F5F9;
  color: #0369A1;
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 0.85em;
  border: 1px solid #E2E8F0;
}

.markdown-rendered-view .md-link {
  color: #0284C7;
  text-decoration: underline;
  font-weight: 500;
}

.markdown-rendered-view .md-link:hover {
  color: #0369A1;
}

.markdown-rendered-view .md-code-block-wrap {
  margin: 14px 0;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
}

.markdown-rendered-view .md-code-header {
  background: #1E293B;
  padding: 6px 14px;
  font-size: 11px;
  font-weight: 600;
  color: #94A3B8;
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #334155;
}

.markdown-rendered-view .md-code-block {
  background: #0F172A;
  color: #F8FAFC;
  padding: 14px 16px;
  margin: 0;
  overflow-x: auto;
  font-family: 'JetBrains Mono', 'Fira Code', Menlo, Monaco, Consolas, monospace;
  font-size: 0.82rem;
  line-height: 1.55;
}

/* ═══════════════════════════════════════════════════════════════════ */
/* Syntax Highlighting Container & Tokens                              */
/* ═══════════════════════════════════════════════════════════════════ */
.syntax-highlighted-view {
  background: #0F172A;
  color: #F8FAFC;
  border-radius: 6px;
  overflow: hidden;
  font-family: 'JetBrains Mono', 'Fira Code', Menlo, Monaco, Consolas, monospace;
  font-size: 12.5px;
  line-height: 1.6;
}

.syn-code-wrapper {
  display: flex;
  overflow-x: auto;
  min-height: 240px;
}

.syn-line-numbers {
  background: #1E293B;
  color: #64748B;
  padding: 14px 10px;
  text-align: right;
  -webkit-user-select: none;
  user-select: none;
  border-right: 1px solid #334155;
  font-size: 11.5px;
  line-height: 1.6;
  white-space: pre;
}

.syn-code-content {
  flex: 1;
  padding: 14px 16px;
  margin: 0;
  background: transparent;
  color: #F8FAFC;
  overflow-x: auto;
  white-space: pre;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

/* Color Tokens */
.syn-keyword {
  color: #C084FC !important;
  font-weight: 600;
}

.syn-prefix {
  color: #38BDF8 !important;
  font-weight: 500;
}

.syn-entity {
  color: #FCD34D !important;
}

.syn-type {
  color: #F472B6 !important;
  font-weight: 700;
}

.syn-string {
  color: #A3E635 !important;
}

.syn-comment {
  color: #64748B !important;
  font-style: italic;
}

.syn-number {
  color: #FB923C !important;
}

.syn-variable {
  color: #60A5FA !important;
  font-weight: 600;
}

.syn-function {
  color: #2DD4BF !important;
  font-weight: 600;
}

.syn-uri {
  color: #2DD4BF !important;
  text-decoration: underline;
}

.syn-json-key {
  color: #38BDF8 !important;
  font-weight: 600;
}

.syn-md-head {
  color: #60A5FA !important;
  font-weight: 700;
}

.syn-md-quote {
  color: #94A3B8 !important;
  font-style: italic;
}

.syn-punct {
  color: #94A3B8 !important;
}

/* Universal Actions Dropdown Menu (Shared Component across Domains & Assets) */
.actions-dropdown-wrapper,
.assets-dropdown-wrapper {
  position: relative;
  display: inline-block;
}

.actions-dropdown-menu,
.assets-dropdown-menu {
  display: none;
  position: absolute;
  right: 0;
  top: 100%;
  margin-top: 4px;
  background: #FFFFFF;
  border: 1px solid #CBD5E1;
  border-radius: 6px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  min-width: 160px;
  z-index: 250;
  padding: 4px 0;
  max-height: 70vh;
  overflow-y: auto;
  animation: actionsDropdownFadeIn 0.12s ease-out;
}

.actions-dropdown-menu.show,
.assets-dropdown-menu.show {
  display: block;
}

@keyframes actionsDropdownFadeIn {
  from { opacity: 0; transform: translateY(-3px); }
  to { opacity: 1; transform: translateY(0); }
}

.actions-dropdown-item,
.assets-dropdown-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 7px 12px;
  border: none;
  background: transparent;
  text-align: left;
  font-size: 12px;
  font-family: var(--font-main);
  font-weight: 500;
  color: #334155;
  cursor: pointer;
  transition: background 0.12s, color 0.12s;
  box-sizing: border-box;
}

.actions-dropdown-item:hover,
.assets-dropdown-item:hover {
  background: #F1F5F9;
  color: #0F172A;
}

.actions-dropdown-item.item-danger,
.assets-dropdown-item.item-danger {
  color: #DC2626;
}

.actions-dropdown-item.item-danger:hover,
.assets-dropdown-item.item-danger:hover {
  background: #FEF2F2;
  color: #B91C1C;
}

.actions-dropdown-divider,
.assets-dropdown-divider {
  height: 1px;
  background: #E2E8F0;
  margin: 4px 0;
}

.assets-dropdown-item:hover {
  background: #F1F5F9;
  color: #0F172A;
}

.assets-dropdown-item.item-danger {
  color: #DC2626;
}

.assets-dropdown-item.item-danger:hover {
  background: #FEF2F2;
  color: #B91C1C;
}

.assets-dropdown-divider {
  height: 1px;
  background: #E2E8F0;
  margin: 4px 0;
}

/* Tree hover kebab action button */
.assets-row-kebab {
  opacity: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  padding: 0 5px;
  font-size: 14px;
  line-height: 1;
  color: #64748B;
  border-radius: 4px;
  transition: opacity 0.15s, background 0.12s;
  flex-shrink: 0;
}

.assets-file-item:hover .assets-row-kebab,
.assets-file-item.active .assets-row-kebab {
  opacity: 1;
}

.assets-row-kebab:hover {
  background: #CBD5E1;
  color: #0F172A;
}

/* Category + Add File Button */
.btn-cat-add-file {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  padding: 0;
  border: 1px solid #CBD5E1;
  border-radius: 4px;
  background: #FFFFFF;
  color: #475569;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: all 0.12s ease;
}

.btn-cat-add-file:hover {
  background: #0284C7;
  border-color: #0284C7;
  color: #FFFFFF;
  transform: scale(1.1);
}

.modal-dialog.modal-sm.modal-max-440 {
  width: 440px;
  max-width: 92vw;
}

.dialog-prompt-input:focus,
.dynamic-dialog-backdrop input[data-prompt]:focus {
  border-color: #0284C7 !important;
  box-shadow: 0 0 0 3px rgba(2, 132, 199, 0.15) !important;
}


/* ==========================================================================
   Semantic & Utility Classes (Externalized from index.html)
   ========================================================================== */

/* --- Visibility & Display --- */
.d-none { display: none; }
.z-1060 { z-index: 1060; }
.z-1070 { z-index: 1070; }
.min-w-0 { min-width: 0; }
.pos-relative { position: relative; }
.rel-inline-block { position: relative; display: inline-block; }
.rel-inline-block-shrink0 { position: relative; display: inline-block; flex-shrink: 0; }

/* --- Flexbox & Grid Layouts --- */
.flex-1 { flex: 1; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.overflow-hidden { overflow: hidden; }
.overflow-y-auto { overflow-y: auto; }
.justify-between { justify-content: space-between; }
.flex-between { display: flex; justify-content: space-between; }
.flex-between-center { display: flex; align-items: center; justify-content: space-between; }
.flex-gap8 { display: flex; gap: 8px; }
.flex-gap8-stretch { display: flex; gap: 8px; align-items: stretch; }
.flex-center-gap6 { display: flex; align-items: center; gap: 6px; }
.flex-center-gap8 { display: flex; align-items: center; gap: 8px; }
.flex-center-gap10 { display: flex; align-items: center; gap: 10px; }
.flex-col-gap10 { display: flex; flex-direction: column; gap: 10px; }
.gap-12 { gap: 12px; }
.grid-2col-gap12 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* --- Spacing (Margins & Paddings) --- */
.m-0 { margin: 0; }
.mb-0 { margin-bottom: 0; }
.mb-2 { margin-bottom: 2px; }
.mb-6 { margin-bottom: 6px; }
.mb-8 { margin-bottom: 8px; }
.mb-14 { margin-bottom: 14px; }
.mt-0 { margin-top: 0; }
.mt-10 { margin-top: 10px; }
.mt-14 { margin-top: 14px; }
.mt-16 { margin-top: 16px; }
.mt-18 { margin-top: 18px; }
.mt-20 { margin-top: 20px; }
.ml-auto { margin-left: auto; }
.my-6-10 { margin: 6px 0 10px 0; }
.p-0 { padding: 0; }
.p-10 { padding: 10px; }
.p-6-8 { padding: 6px 8px; }
.p-12-14 { padding: 12px 14px; }
.p-18-24 { padding: 18px 24px; }

/* --- Sizing --- */
.w-auto { width: auto; }
.w-full { width: 100%; }
.w-32 { width: 32px; }
.w-85 { width: 85px; }
.w-95 { width: 95px; }
.w-110 { width: 110px; }
.w-120 { width: 120px; }
.w-130 { width: 130px; }
.w-140 { width: 140px; }
.w-150 { width: 150px; }
.w-160 { width: 160px; }
.w-180 { width: 180px; }
.w-190 { width: 190px; }
.min-w-130 { min-width: 130px; }
.min-w-140 { min-width: 140px; }
.min-w-160 { min-width: 160px; }
.min-w-220 { min-width: 220px; }
.min-w-380 { min-width: 380px; }
.max-w-480 { max-width: 480px; }
.modal-max-440 { max-width: 440px; }
.modal-max-520 { max-width: 520px; }
.modal-max-620 { max-width: 620px; }
.modal-max-640 { max-width: 640px; }
.modal-max-680 { max-width: 680px; }
.container-max-1400 { max-width: 1400px; margin: 0 auto; width: 100%; }

/* --- Typography & Colors --- */
.cursor-pointer { cursor: pointer; }
.text-right { text-align: right; }
.text-success { color: #00A86B; }
.text-danger { color: #DC2626; }
.font-bold { font-weight: 700; }
.font-semibold { font-weight: 600; }
.list-none { list-style: none; }
.text-badge-xs { font-size: 8px; }
.text-10 { font-size: 10px; }
.text-11 { font-size: 11px; }
.text-xs { font-size: 0.75rem; }
.text-xs-8 { font-size: 0.8rem; }
.text-xs-82 { font-size: 0.82rem; }
.text-xs-subtle { font-size: 0.78rem; }
.text-sm-85 { font-size: 0.85rem; }
.text-sky-600-13 { color: #0369A1; font-size: 13px; }
.text-sky-500-12-mt2 { font-size: 12px; color: #0284C7; margin-top: 2px; }
.text-slate-500-11-mt2 { font-size: 11px; color: #64748B; margin-top: 2px; }
.text-slate-600-12-medium { font-size: 12px; font-weight: 500; color: #475569; }
.text-slate-400-11-shrink0 { font-size: 11px; color: #94A3B8; flex-shrink: 0; }
.text-12-leading-15 { font-size: 12px; line-height: 1.5; }
.text-12-overflow-x { font-size: 12px; overflow-x: auto; }
.title-11 { font-size: 1.1rem; }
.title-13-bold { font-size: 13px; font-weight: 600; }
.title-15-bold { font-size: 15px; font-weight: 600; color: #0F172A; }
.title-16 { font-size: 16px; }
.title-16-slate { font-size: 16px; font-weight: 600; color: #475569; }
.title-115 { font-size: 1.15rem; }
.title-115-mt4 { margin: 4px 0 0 0; font-size: 1.15rem; }
.title-sm-bold { font-size: 12px; font-weight: 600; color: #0F172A; }
.icon-lg { font-size: 1.25rem; }
.icon-xl { font-size: 1.3rem; }
.icon-20 { font-size: 20px; }
.icon-hero-42 { font-size: 42px; margin-bottom: 12px; }
.font-mono-10 { font-family: monospace; font-size: 10px; }
.divider-subtle { height: 1px; background: #E2E8F0; margin: 4px 0; }

/* --- Interactive & Component Elements --- */
.nav-brand-clickable { cursor: pointer; -webkit-user-select: none; user-select: none; }
.btn-compact-11 { font-size: 11px; padding: 4px 10px; }
.btn-compact-12 { font-size: 12px; padding: 6px 12px; }
.btn-compact-12-14 { padding: 6px 14px; font-size: 12px; }
.btn-compact-12-14-bold { font-size: 12px; padding: 6px 14px; font-weight: 600; }
.btn-compact-6-10 { padding: 6px 10px; font-size: 12px; }
.btn-compact-8-16-med { padding: 8px 16px; font-size: 12px; font-weight: 500; }
.btn-compact-12-gap5 { padding: 6px 12px; font-size: 12px; display: inline-flex; align-items: center; gap: 5px; }
.btn-nowrap-12 { font-size: 12px; white-space: nowrap; padding: 6px 12px; }
.btn-micro-badge { padding: 4px 8px; font-size: 11px; display: inline-flex; align-items: center; gap: 4px; }
.badge-btn-xs { font-size: 10px; padding: 2px 6px; text-decoration: none; }
.btn-compact-h34 { padding: 0 12px; font-size: 11px; white-space: nowrap; height: 34px; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; }
.btn-inline-h38-16 { height: 38px; padding: 0 16px; display: inline-flex; align-items: center; }
.btn-inline-h38-18 { height: 38px; padding: 0 18px; display: inline-flex; align-items: center; justify-content: center; }
.input-compact-220 { font-size: 12px; padding: 6px 12px; width: 220px; box-sizing: border-box; }
.input-compact-240 { min-width: 240px; font-size: 12px; padding: 6px 10px; }
.input-compact-h34 { font-size: 11px; padding: 0 8px; flex: 1; height: 34px; box-sizing: border-box; line-height: 34px; }
.input-compact-h34-w100 { width: 100%; box-sizing: border-box; font-size: 12px; padding: 6px 10px; height: 34px; }
.input-compact-h38 { width: 100%; box-sizing: border-box; padding: 6px 10px; height: 38px; }
.col-w44-center { width: 44px; text-align: center; }
.th-sortable-num-100 { cursor: pointer; text-align: right; width: 100px; }
.td-muted-center { padding: 8px; text-align: center; color: #94A3B8; }
.empty-state-text-12 { padding: 10px; color: #94A3B8; font-size: 12px; text-align: center; }
.link-btn-subtle { margin-top: 10px; margin-left: 8px; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.form-label-hint { font-weight: 500; font-size: 12px; color: #475569; display: block; margin-bottom: 6px; }
.label-caption-uppercase { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; color: #64748B; margin-bottom: 6px; }
.label-caption-bold { font-size: 11px; font-weight: 600; color: #475569; margin-bottom: 6px; }
.truncate-label-11 { font-size: 11px; color: #475569; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }

/* --- Card & Panel Containers --- */
.info-callout-sky { background: #F0F9FF; border: 1px solid #BAE6FD; border-radius: 8px; padding: 12px 16px; margin-bottom: 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.domain-toolbar-container { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; background: #FFFFFF; border: 1px solid #CBD5E1; border-radius: 8px; padding: 10px 16px; box-shadow: 0 1px 3px rgba(0,0,0,0.04); flex-wrap: wrap; gap: 10px; }
.switch-group-container { display: inline-flex; align-items: center; background: #E2E8F0; border: 1px solid #CBD5E1; border-radius: 6px; padding: 2px; margin-right: 8px; flex-shrink: 0; height: 26px; box-sizing: border-box; }
.switch-btn-active { font-size: 0.72rem; padding: 0 8px; border: none; font-weight: 600; cursor: pointer; border-radius: 4px; background: #FFFFFF; color: #0F172A; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06); height: 20px; display: inline-flex; align-items: center; }
.switch-btn-inactive { font-size: 0.72rem; padding: 0 8px; border: none; font-weight: 500; cursor: pointer; border-radius: 4px; background: transparent; color: #64748B; height: 20px; display: inline-flex; align-items: center; }
.group-switch-compact { align-items: center; gap: 2px; background: #E2E8F0; padding: 2px; border-radius: 6px; }
.page-content-pad-bg { padding: 16px 24px; background: #F8FAFC; }
.feedback-box-compact { display: none; margin-top: 12px; padding: 10px 14px; border-radius: 6px; font-size: 12px; line-height: 1.5; }
.callout-compact-box { display: none; padding: 10px 12px; background: #F8FAFC; border: 1px solid #CBD5E1; border-radius: 6px; font-size: 12px; color: #334155; }
.meta-summary-bar { background: #F8FAFC; border: 1px solid #E2E8F0; border-radius: 6px; padding: 12px; margin-bottom: 14px; font-size: 12px; color: #334155; display: flex; gap: 20px; flex-wrap: wrap; }
.scrollbox-h140 { max-height: 140px; overflow-y: auto; border: 1px solid #E2E8F0; border-radius: 6px; }
.scrollbox-h280 { max-height: 280px; overflow: auto; }
.tree-scrollbox-380 { font-size: 12px; max-height: 380px; overflow-y: auto; margin-top: 10px; }
.table-compact-11 { width: 100%; border-collapse: collapse; font-size: 11px; text-align: left; }
.table-thead-subtle { background: #F8FAFC; border-bottom: 1px solid #E2E8F0; color: #475569; }
.dropdown-menu-floating { display: none; position: absolute; right: 0; top: 100%; margin-top: 4px; background: #FFFFFF; border: 1px solid #CBD5E1; border-radius: 6px; box-shadow: 0 4px 14px rgba(0,0,0,0.12); min-width: 150px; z-index: 200; padding: 4px 0; }
.empty-state-splash { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #94A3B8; padding: 40px; text-align: center; }
.desc-subtitle-420 { font-size: 13px; max-width: 420px; margin-top: 6px; line-height: 1.5; }

/* --- Transcripts View --- */
.transcripts-tab-wrapper { display: none; padding: 16px 24px; flex: 1; min-height: 0; box-sizing: border-box; overflow: hidden; height: calc(100vh - 72px - 44px); }
.transcripts-layout { display: flex; gap: 0; height: 100%; max-width: 1400px; margin: 0 auto; width: 100%; }
.transcripts-sidebar-card { width: 340px; background: #FFFFFF; border: 1px solid #CBD5E1; border-radius: 8px; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,0.05); }
.transcripts-main-card { flex: 1; background: #FFFFFF; border: 1px solid #CBD5E1; border-radius: 8px; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,0.05); }

/* Resizable divider between the Assets sidebar and main editor area */
.assets-outer-divider {
  flex: 0 0 20px;
  width: 20px;
  align-self: stretch;
  position: relative;
  cursor: col-resize;
  background: transparent;
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
}

.assets-outer-divider::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 4px;
  transform: translateX(-50%);
  background: #E2E8F0;
  border-radius: 2px;
  transition: background 0.15s ease;
}

.assets-outer-divider:hover::before,
.assets-outer-divider.is-active::before {
  background: #0284C7;
}
.card-header-bar {
  padding: 12px 16px;
  border-bottom: 1px solid #E2E8F0;
  background: #F8FAFC;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.card-header-title-flex { margin: 0; font-size: 14px; font-weight: 600; color: #0F172A; display: flex; align-items: center; gap: 6px; }

.card-subheader-bar {
  padding: 12px 14px;
  border-bottom: 1px solid #E2E8F0;
  background: #F8FAFC;
}
.card-subheader-bar .label-caption-bold {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: #475569;
  margin-bottom: 6px;
}

.assets-upload-control-row {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
  width: 100% !important;
}
.assets-upload-control-row .settings-select {
  flex: 1 !important;
  min-width: 0 !important;
  height: 34px !important;
  padding: 0 10px !important;
  font-size: 12px !important;
  border: 1px solid #CBD5E1 !important;
  border-radius: 6px !important;
  background: #FFFFFF !important;
  color: #1E293B !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}
.assets-upload-control-row .settings-btn,
.assets-upload-control-row button.settings-btn {
  width: auto !important;
  margin: 0 !important;
  margin-top: 0 !important;
  height: 34px !important;
  padding: 0 14px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  border-radius: 6px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
  flex-shrink: 0 !important;
  background: var(--brand-petrol, #003B46) !important;
  color: #FFFFFF !important;
  border: none !important;
}
.assets-upload-control-row .settings-btn:hover:not(:disabled) {
  background: var(--brand-petrol-hover, #07575B) !important;
  box-shadow: 0 2px 6px rgba(0, 59, 70, 0.25) !important;
}

.card-header-bar .settings-btn {
  width: auto !important;
  margin: 0 !important;
  margin-top: 0 !important;
  height: 28px !important;
  padding: 0 10px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  border-radius: 6px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}

.meta-strip-bar {
  padding: 8px 14px;
  border-bottom: 1px solid #E2E8F0;
  background: #F8FAFC;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}
.meta-strip-bar .settings-btn {
  width: auto !important;
  margin: 0 !important;
  margin-top: 0 !important;
  box-sizing: border-box !important;
}

.card-footer-bar { padding: 10px 14px; border-top: 1px solid #E2E8F0; background: #F8FAFC; }

/* Main Card Toolbar (2-tier layout preventing title/button overlap) */
.main-card-toolbar {
  padding: 10px 16px;
  border-bottom: 1px solid #E2E8F0;
  background: #F8FAFC;
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-sizing: border-box;
}

.main-card-toolbar-row-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 34px;
}

.main-card-toolbar-title-box {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex: 1;
}

.main-card-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
  flex-shrink: 0;
}

.main-card-toolbar-row-sub {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 28px;
  border-top: 1px solid #F1F5F9;
  padding-top: 6px;
}

.assets-file-meta-strip {
  font-size: 11px;
  color: #64748B;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
  min-width: 0;
  line-height: 1.4;
}

.truncate-label-280 {
  max-width: 380px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: inline-block;
}

/* Drag and Drop Zone in Assets Sidebar */
.assets-dropzone {
  position: relative;
  transition: background-color 0.15s ease, outline-color 0.15s ease, box-shadow 0.15s ease;
  border-radius: 6px;
}

.assets-dropzone.dragover-active {
  background-color: #F0F9FF !important;
  outline: 2px dashed #0284C7 !important;
  outline-offset: -2px;
}

.mb-6 { margin-bottom: 6px !important; }
.m-0 { margin: 0 !important; }

/* Subtle tree toggle button in Assets Hub sidebar */
#btnToggleAllCategories {
  height: 28px !important;
  min-height: 28px !important;
  max-height: 28px !important;
  padding: 0 8px !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  color: #475569 !important;
  background: #F1F5F9 !important;
  border: 1px solid #CBD5E1 !important;
  border-radius: 6px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
  transition: all 0.15s ease !important;
}
#btnToggleAllCategories:hover {
  background: #E2E8F0 !important;
  color: #0F172A !important;
  border-color: #94A3B8 !important;
}

/* Keep the toolbar trigger compact without changing its menu items. */
.main-card-toolbar .settings-btn,
.main-card-toolbar button.settings-btn,
#btnWorkbenchActionsMenu {
  width: auto !important;
  margin: 0 !important;
  margin-top: 0 !important;
  height: 32px !important;
  min-height: 32px !important;
  max-height: 32px !important;
  padding: 0 12px !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  border-radius: 6px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
  flex-shrink: 0 !important;
  line-height: 1 !important;
  text-align: center !important;
  vertical-align: middle !important;
}

/* Modern View Mode Selector Combobox in Row 2 Top-Right */
.assets-view-mode-selector-wrapper {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.assets-view-mode-selector-wrapper.d-none {
  display: none !important;
}

.assets-mode-select {
  height: 28px !important;
  min-height: 28px !important;
  max-height: 28px !important;
  font-size: 12px !important;
  font-family: var(--font-main) !important;
  font-weight: 600 !important;
  padding: 0 24px 0 10px !important;
  border-radius: 6px !important;
  background-color: #FFFFFF !important;
  border: 1px solid #CBD5E1 !important;
  color: #334155 !important;
  cursor: pointer !important;
  outline: none !important;
  transition: all 0.15s ease !important;
}

.assets-mode-select:hover {
  border-color: #008779 !important;
  color: #0F172A !important;
}

.assets-mode-select:focus {
  border-color: #008779 !important;
  box-shadow: 0 0 0 2px rgba(0, 135, 121, 0.18) !important;
}

/* Unified View Mode Switcher: 32px container height with 28px pill buttons */
.main-card-toolbar .assets-view-modes,
.assets-view-modes {
  display: inline-flex !important;
  align-items: center !important;
  background: #E2E8F0 !important;
  padding: 2px !important;
  border-radius: 6px !important;
  height: 32px !important;
  min-height: 32px !important;
  max-height: 32px !important;
  box-sizing: border-box !important;
  gap: 2px !important;
}

.main-card-toolbar .assets-mode-btn,
.assets-mode-btn {
  height: 28px !important;
  min-height: 28px !important;
  max-height: 28px !important;
  padding: 0 10px !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  border: none !important;
  background: transparent !important;
  color: #475569 !important;
  cursor: pointer !important;
  border-radius: 4px !important;
  transition: all 0.15s ease !important;
  -webkit-user-select: none !important;
  user-select: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
  box-sizing: border-box !important;
  white-space: nowrap !important;
  vertical-align: middle !important;
}

.assets-mode-btn:hover {
  color: #0F172A !important;
  background: #CBD5E1 !important;
}

.assets-mode-btn.active {
  background: #FFFFFF !important;
  color: #0284C7 !important;
  font-weight: 600 !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important;
}

.main-card-toolbar .settings-btn.d-none {
  display: none !important;
}

.main-card-toolbar .settings-btn-primary {
  background: var(--brand-petrol, #003B46) !important;
  color: #FFFFFF !important;
  border: 1px solid transparent !important;
}

.main-card-toolbar .settings-btn-primary:hover:not(:disabled) {
  background: var(--brand-petrol-hover, #07575B) !important;
  box-shadow: 0 2px 6px rgba(0, 59, 70, 0.25) !important;
}

.main-card-toolbar .settings-btn-secondary {
  background: #FFFFFF !important;
  color: #1E293B !important;
  border: 1px solid #CBD5E1 !important;
}

.main-card-toolbar .settings-btn-secondary:hover:not(:disabled) {
  background: #F1F5F9 !important;
  border-color: #94A3B8 !important;
  color: #0F172A !important;
}

/* ═══════════════════════════════════════════════════════════════════ */
/* Unified Domain Catalog & Entity Actions Toolbar                     */
/* ═══════════════════════════════════════════════════════════════════ */
.domain-toolbar-container {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-bottom: 14px !important;
  background: #FFFFFF !important;
  border: 1px solid #CBD5E1 !important;
  border-radius: 8px !important;
  padding: 10px 16px !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
  gap: 12px !important;
  min-height: 52px !important;
  box-sizing: border-box !important;
  position: relative !important;
  z-index: 30 !important;
}

.domain-toolbar-actions-group {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: nowrap !important;
  flex-shrink: 0 !important;
}

.domain-toolbar-actions-group .actions-dropdown-menu {
  left: 0 !important;
  right: auto !important;
}

.domain-toolbar-search-group {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: nowrap !important;
  flex-shrink: 0 !important;
}

/* Scoped button rules to override global .settings-btn width: 100% and margin-top: 12px */
.domain-toolbar-container .settings-btn,
.domain-toolbar-container button.settings-btn {
  width: auto !important;
  margin: 0 !important;
  margin-top: 0 !important;
  height: 32px !important;
  padding: 0 14px !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  border-radius: 6px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
  flex-shrink: 0 !important;
  line-height: 1 !important;
  text-align: center !important;
}

.domain-toolbar-container .settings-btn-primary {
  background: var(--brand-petrol, #003B46) !important;
  color: #FFFFFF !important;
  border: none !important;
  font-weight: 600 !important;
}

.domain-toolbar-container .settings-btn-primary:hover:not(:disabled) {
  background: var(--brand-petrol-hover, #07575B) !important;
  box-shadow: 0 2px 6px rgba(0, 59, 70, 0.25) !important;
}

.domain-toolbar-container .settings-btn-secondary,
.domain-toolbar-container .settings-btn-outline {
  background: #FFFFFF !important;
  color: #1E293B !important;
  border: 1px solid #CBD5E1 !important;
}

.domain-toolbar-container .settings-btn-secondary:hover:not(:disabled),
.domain-toolbar-container .settings-btn-outline:hover:not(:disabled) {
  background: #F1F5F9 !important;
  border-color: #94A3B8 !important;
  color: #0F172A !important;
}

.domain-toolbar-container .settings-input {
  height: 32px !important;
  padding: 0 10px !important;
  font-size: 12px !important;
  border: 1px solid #CBD5E1 !important;
  border-radius: 6px !important;
  background: #FFFFFF !important;
  color: #1E293B !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

.domain-toolbar-container .settings-input:focus {
  border-color: #0284C7 !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(2, 132, 199, 0.15) !important;
}

/* Contextual Selection Action Bar in Toolbar */
.toolbar-actions-separator {
  width: 1px !important;
  height: 22px !important;
  background-color: #E2E8F0 !important;
  margin: 0 4px !important;
  flex-shrink: 0 !important;
}

.vector-selection-action-bar {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  flex-shrink: 0 !important;
}

.vector-selection-action-bar .settings-btn[disabled],
.vector-selection-action-bar button.settings-btn[disabled] {
  opacity: 0.45 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
  background: #F8FAFC !important;
  color: #94A3B8 !important;
  border-color: #E2E8F0 !important;
}

.vector-selected-hint {
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  color: var(--brand-petrol, #008779) !important;
  padding: 4px 9px !important;
  background: rgba(0, 135, 121, 0.08) !important;
  border: 1px solid rgba(0, 135, 121, 0.2) !important;
  border-radius: 4px !important;
  max-width: 240px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  display: inline-block !important;
}

/* --- SPARQL Split View --- */
.sparql-split-view-container { flex: 1; display: flex; overflow: hidden; position: relative; min-height: 280px; }
.sparql-split-pane { flex: 1; display: flex; flex-direction: column; overflow: hidden; min-width: 0; }
.sparql-split-editor { flex: 1; width: 100%; border: none; outline: none; padding: 16px; font-family: 'JetBrains Mono', 'Fira Code', Menlo, Monaco, Consolas, monospace; font-size: 13px; line-height: 1.6; resize: none; box-sizing: border-box; background: #FAFAFA; color: #1E293B; }
.sparql-split-resizer { display: none; width: 4px; background: #E2E8F0; cursor: col-resize; }
.sparql-results-pane { display: none; flex: 1; overflow-y: auto; padding: 18px 22px; background: #FFFFFF; min-width: 0; box-sizing: border-box; }
.sparql-preview-dock-220 { display: none; max-height: 220px; overflow-y: auto; border-top: 2px solid #E2E8F0; background: #FFFFFF; padding: 12px 16px; }
.sparql-preview-dock-240 { display: none; max-height: 240px; overflow-y: auto; border-top: 2px solid #E2E8F0; background: #FFFFFF; padding: 12px 16px; }
.sparql-stats-dock { display: none; border-top: 2px solid #E2E8F0; background: #F8FAFC; padding: 12px 16px; }
.modal-footer-separated { display: flex; justify-content: space-between; padding: 14px 24px; border-top: 1px solid #E2E8F0; }


/* Authentication shell never renders private data before initialization. */
.auth-locked .app-container {
  visibility: hidden;
}
.auth-locked #interviewPanel,
.auth-locked .panel-interview {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
.auth-preview {
  display: none;
}
.auth-locked .auth-preview {
  display: flex;
  position: fixed;
  inset: 8%;
  gap: 24px;
  filter: blur(9px);
  opacity: .5;
}
.auth-preview>div {
  flex: 1;
  background: #dce7e8;
  border-radius: 20px;
}
.auth-overlay {
  z-index: 99999;
  background: rgba(240,247,247,.7);
}
.auth-card {
  max-width: 420px;
  padding: 32px;
  border-radius: 16px;
  box-shadow: 0 18px 65px #003b4626;
}
.auth-card label, .auth-card input {
  display: block;
  width: 100%;
  margin: 12px 0;
}
.auth-card input {
  padding: 12px;
  border: 1px solid #b6caca;
  border-radius: 8px;
}
.auth-card button {
  width: 100%;
}
#loginError {
  color: #991b1b;
  min-height: 20px;
}
[hidden] {
  display: none !important;
}

/* Security Events Unified Data Table & Filter Bar */
.security-events-panel {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--border-subtle, #E2E8F0);
}
.security-events-header-row {
  margin-bottom: 12px;
}
.security-events-header-row h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--slate-800, #1E293B);
  margin-bottom: 4px;
}
.security-events-header-row p {
  color: var(--text-muted, #64748B);
  font-size: 0.85rem;
  margin: 0;
}
.security-events-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}

.security-events-header-left {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.settings-hint-inline {
  font-size: 0.78rem;
  color: var(--text-muted, #64748B);
}

.security-events-meta-group {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.security-events-status-msg {
  font-size: 0.76rem;
  color: var(--text-secondary, #475569);
  background: var(--bg-hover, #F1F5F9);
  padding: 3px 8px;
  border-radius: 4px;
  border: 1px solid var(--border-subtle, #E2E8F0);
  margin: 0;
  white-space: nowrap;
}

.security-events-filter-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--bg-surface, #F8FAFC);
  border: 1px solid var(--border-subtle, #E2E8F0);
  border-radius: var(--radius-md, 8px);
  padding: 6px 12px;
  margin-bottom: 12px;
  flex-wrap: nowrap;
}

.security-filter-field {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-shrink: 0;
}

.security-filter-field label {
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--text-secondary, #475569);
  white-space: nowrap;
  margin: 0;
}

.security-filter-field .settings-select,
.security-filter-field .settings-input {
  height: 28px;
  padding: 2px 8px;
  font-size: 0.8rem;
  border: 1px solid var(--border-subtle, #CBD5E1);
  border-radius: 4px;
  background: #FFFFFF;
  color: var(--slate-800, #1E293B);
  outline: none;
  transition: border-color 0.15s ease;
  box-sizing: border-box;
}

.security-filter-field .settings-select:focus,
.security-filter-field .settings-input:focus {
  border-color: var(--brand-petrol, #003B46);
  box-shadow: 0 0 0 2px rgba(0, 59, 70, 0.15);
}

.security-filter-field-wide {
  min-width: 140px;
}

.security-filter-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  flex-shrink: 0;
}

.security-filter-actions .settings-btn {
  height: 28px;
  padding: 0 10px;
  font-size: 0.78rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border-radius: 4px;
  white-space: nowrap;
}

.security-table-container {
  overflow-x: auto;
  overflow-y: auto;
  max-height: 520px;
  border: 1px solid var(--border-subtle, #E2E8F0);
  border-radius: var(--radius-md, 8px);
  background: #FFFFFF;
  box-shadow: var(--shadow-sm, 0 1px 2px rgba(0,0,0,0.05));
}

.security-table-container thead th {
  position: sticky;
  top: 0;
  z-index: 5;
  background: var(--bg-surface, #F8FAFC);
}

/* ==========================================================================
   DataTable Pagination Styles
   ========================================================================== */
.data-table-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 14px;
  background: #F8FAFC;
  border-top: 1px solid var(--border-subtle, #E2E8F0);
  border-bottom-left-radius: var(--radius-md, 8px);
  border-bottom-right-radius: var(--radius-md, 8px);
  font-size: 0.78rem;
  color: var(--text-secondary, #475569);
  gap: 12px;
  flex-wrap: wrap;
}

.data-table-pagination .dt-pagination-info {
  display: flex;
  align-items: center;
  gap: 4px;
}

.data-table-pagination .dt-pagination-controls {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
}

.data-table-pagination .dt-page-btn {
  height: 26px;
  min-width: 26px;
  padding: 0 7px;
  font-size: 0.74rem;
  font-weight: 500;
  border: 1px solid #CBD5E1;
  background: #FFFFFF;
  color: #1E293B;
  border-radius: 4px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.12s ease;
  line-height: 1;
}

.data-table-pagination .dt-page-btn:hover:not(:disabled) {
  background: #F1F5F9;
  border-color: #94A3B8;
  color: #0F172A;
}

.data-table-pagination .dt-page-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  background: #F8FAFC;
  color: #94A3B8;
}

.data-table-pagination .dt-page-size-select {
  height: 26px;
  padding: 0 6px;
  font-size: 0.74rem;
  border: 1px solid #CBD5E1;
  border-radius: 4px;
  background: #FFFFFF;
  color: #1E293B;
  outline: none;
}

.data-table-pagination .dt-page-current {
  padding: 0 4px;
  font-size: 0.76rem;
  white-space: nowrap;
}
.security-table-container table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.84rem;
}
.security-table-container th {
  background: var(--bg-surface, #F8FAFC);
  padding: 10px 14px;
  text-align: left;
  font-weight: 600;
  color: var(--slate-800, #1E293B);
  border-bottom: 2px solid var(--border-subtle, #E2E8F0);
  white-space: nowrap;
}
.security-table-container td {
  padding: 9px 14px;
  border-bottom: 1px solid var(--border-subtle, #F1F5F9);
  color: var(--slate-700, #334155);
  vertical-align: middle;
}
.security-table-container tr:hover td {
  background: var(--bg-hover, #F8FAFC);
}
.security-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 7px;
  border-radius: 4px;
  font-size: 0.72rem;
  font-weight: 600;
  font-family: var(--font-mono, monospace);
}
.security-badge-ok {
  background: #ECFDF5;
  color: #047857;
  border: 1px solid #A7F3D0;
}
.security-badge-warn {
  background: #FFFBEB;
  color: #B45309;
  border: 1px solid #FDE68A;
}
.security-badge-danger {
  background: #FEF2F2;
  color: #B91C1C;
  border: 1px solid #FECACA;
}
.security-badge-info {
  background: #EFF6FF;
  color: #1D4ED8;
  border: 1px solid #BFDBFE;
}

/* --- Clean classes replacing inline styles --- */
.filter-pill-add-knowledge {
  font-weight: 600;
  background-color: #EEF2FF;
  color: #4F46E5;
  border: 1px solid #C7D2FE;
}
.filter-pill-add-knowledge:hover {
  background-color: #E0E7FF;
}

.settings-system-specs-box {
  background-color: #F8FAFC !important;
  border-radius: 8px;
}

.settings-version-lbl-spec {
  width: 200px;
  font-weight: 600;
}

.btn-audit-shapes {
  font-size: 0.82rem;
  padding: 5px 12px;
}

/* ==========================================================================
   Knowledge Graph Entity Table (Reusable Control)
   ========================================================================== */
.kge-wrapper {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 380px;
  background: #FFFFFF;
  border: 1px solid var(--border-subtle, #E2E8F0);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.kge-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 10px 14px;
  background: #F8FAFC;
  border-bottom: 1px solid var(--border-subtle, #E2E8F0);
}

.kge-filters-group {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.kge-search-group {
  display: flex;
  align-items: center;
  gap: 10px;
}

.kge-search-box {
  width: 280px;
}

.kge-stats-badge {
  background: #EFF6FF;
  color: #1D4ED8;
  border: 1px solid #BFDBFE;
  font-weight: 600;
  font-size: 0.76rem;
  padding: 3px 8px;
  white-space: nowrap;
}

.kge-table-container {
  flex: 1;
  overflow-y: auto;
  overflow-x: auto;
  min-height: 240px;
}

.kge-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  font-size: 0.84rem;
}

.kge-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #F8FAFC;
  padding: 10px 14px;
  font-weight: 600;
  font-size: 0.74rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748B;
  border-bottom: 1.5px solid var(--border-subtle, #E2E8F0);
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  white-space: nowrap;
}

.kge-table th:hover {
  background: #F1F5F9;
  color: #0F172A;
}

.kge-table td {
  padding: 10px 14px;
  border-bottom: 1px solid #F1F5F9;
  color: var(--text-primary, #0F172A);
  vertical-align: middle;
}

.kge-table tbody tr {
  cursor: pointer;
  transition: background-color 0.12s ease;
}

.kge-table tbody tr:hover {
  background-color: #F8FAFC;
}

.kge-table tbody tr.is-selected,
.kge-table tbody tr.selected {
  background-color: #F0F9FF !important;
}

.kge-table tbody tr.is-selected td:first-child,
.kge-table tbody tr.selected td:first-child {
  box-shadow: inset 3px 0 0 #0284C7;
}

.kge-pagination {
  border-top: 1px solid var(--border-subtle, #E2E8F0);
  background: #FFFFFF;
  padding: 8px 14px;
}

/* ==========================================================================
   SHACL Rule Cross-Surface Inspection Banner in Assets view
   ========================================================================== */
.assets-shacl-rule-banner {
  align-items: center;
  justify-content: space-between;
  padding: 8px 14px;
  background: #FEF3C7;
  border-bottom: 1px solid #FDE68A;
  font-size: 0.80rem;
}

.assets-shacl-banner-left,
.assets-shacl-banner-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.assets-shacl-banner-icon {
  font-size: 16px;
}

.assets-shacl-banner-title {
  color: #92400E;
}

.assets-shacl-banner-desc {
  color: #78350F;
  margin-left: 6px;
}

.btn-assets-back-to-graph {
  font-size: 0.74rem;
  padding: 3px 8px;
  background: #FFFFFF;
  border-color: #D97706;
  color: #92400E;
}

.btn-dismiss-shacl-banner {
  font-size: 12px;
  color: #92400E;
}

/* ==========================================================================
   Ontology Property Classification & Asset Deep-Link Styles
   ========================================================================== */
.badge-schema-rdf {
  background: #EFF6FF !important;
  color: #1D4ED8 !important;
  border: 1px solid #BFDBFE !important;
  font-weight: 600;
  font-size: 11px;
}

.badge-schema-rdfs {
  background: #EEF2FF !important;
  color: #4338CA !important;
  border: 1px solid #C7D2FE !important;
  font-weight: 600;
  font-size: 11px;
}

.badge-schema-skos {
  background: #ECFEFF !important;
  color: #0E7490 !important;
  border: 1px solid #A5F3FC !important;
  font-weight: 600;
  font-size: 11px;
}

.badge-schema-owl {
  background: #F5F3FF !important;
  color: #6D28D9 !important;
  border: 1px solid #DDD6FE !important;
  font-weight: 600;
  font-size: 11px;
  transition: all 0.15s ease;
}

.badge-schema-owl:hover {
  background: #EDE9FE !important;
  border-color: #C4B5FD !important;
}

.badge-schema-manual {
  background: #F8FAFC !important;
  color: #64748B !important;
  border: 1px solid #E2E8F0 !important;
  font-weight: 500;
  font-size: 11px;
}

.btn-jump-asset {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
  transition: all 0.15s ease;
  text-decoration: none;
}

.btn-jump-asset:hover {
  filter: brightness(0.95);
  box-shadow: 0 1px 3px rgba(109, 40, 217, 0.2);
  transform: translateY(-1px);
}

.kge-edge-classification-wrap {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
}
