/* BushinFlow  -  Design System v2 (Navy + White + Orange) */

/* Fonts */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap');

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

/* CSS Variables */
:root {
  --font: 'DM Sans', -apple-system, sans-serif;

  /* BushinFlow Palette */
  --primary: #FF6B35;
  --primary-hover: #E55A25;
  --accent: #1A3A6E;
  --teal: #00BDA5;
  --teal-hover: #00A591;
  --navy: #0F1729;
  --navy-light: #162236;

  /* Backgrounds */
  --bg-page: #F4F6FA;
  --bg-card: #FFFFFF;
  --bg-secondary: #F4F6FA;
  --bg-hover: rgba(255,107,53,0.08);

  /* Text */
  --text-primary: #0F1729;
  --text-secondary: #8896B3;
  --text-muted: #8896B3;
  --text-white: #FFFFFF;

  /* Borders */
  --border: #DDE3EE;
  --border-focus: #FF6B35;

  /* Status Farben */
  --success: #00BDA5;
  --success-bg: #E5F8F6;
  --warning: #F5C26B;
  --warning-bg: #FEF8EE;
  --danger: #F2545B;
  --danger-bg: #FDEDEE;
  --info: #1A3A6E;
  --info-bg: #EAF0FF;

  /* Spacing */
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 8px;
  --radius-xl: 10px;

  /* Shadows */
  --shadow-sm: 0 1px 4px rgba(15,23,41,0.08);
  --shadow-md: 0 2px 8px rgba(15,23,41,0.12);

  /* Layout */
  --sidebar-width: 220px;
  --topbar-height: 52px;
}

/* Base */
body {
  font-family: var(--font);
  background: var(--bg-page);
  color: var(--text-primary);
  font-size: 14px;
  line-height: 1.5;
}

/* App Layout  -  CSS Grid (Desktop: Sidebar links, Topbar + Content rechts) */
body.nav-page {
  display: grid;
  grid-template-areas: "sidebar topbar" "sidebar main";
  grid-template-columns: var(--sidebar-width) 1fr;
  grid-template-rows: var(--topbar-height) 1fr;
  height: 100vh;
  overflow: hidden;
}

/* PWA Mobile Logo-Header (nur auf kleinen Screens) */
.pwa-header {
  display: none;
  background: var(--navy);
  padding: 10px 16px;
  align-items: center;
  gap: 10px;
}

/* Topbar */
.topbar {
  grid-area: topbar;
  position: relative;
  height: var(--topbar-height);
  background: #FFFFFF;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  padding: 0 20px;
  gap: 16px;
}
.topbar-brand {
  color: var(--navy);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.2px;
}
.topbar-avatar {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--primary);
  color: white;
  display: flex; align-items: center;
  justify-content: center;
  font-size: 13px; font-weight: 700;
  margin-left: auto;
}

/* Sidebar (Desktop) */
.sidebar {
  grid-area: sidebar;
  position: relative;
  width: var(--sidebar-width);
  height: 100%;
  background: var(--navy);
  border-right: none;
  display: flex;
  flex-direction: column;
  padding: 8px 0;
  overflow-y: auto;
}
.sidebar-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  color: #8896B3;
  text-decoration: none;
  font-size: 13.5px;
  font-weight: 400;
  border-left: 2px solid transparent;
  transition: all 0.15s;
}
.sidebar-item:hover {
  background: rgba(255,107,53,0.08);
  color: #E8F0FF;
}
.sidebar-item.active {
  color: #FFFFFF;
  font-weight: 400;
  border-left-color: var(--primary);
  background: rgba(255,107,53,0.12);
}
.sidebar-item svg {
  width: 18px; height: 18px;
  flex-shrink: 0;
}
.nav-item-parent { position: relative; }
.nav-sub { display: none; }
.nav-item-parent.open .nav-sub { display: block; }
.nav-item-parent:has(.sidebar-item.active) .nav-sub { display: block; }
.nav-sub a:hover { color: #E8F0FF; }
.nav-item-parent.open .nav-chevron { transform: rotate(90deg); }

/* Main Content */
.main-content {
  grid-area: main;
  overflow-y: auto;
  min-height: 0;
  padding: 24px;
  background: var(--bg-page);
}

/* Cards */
.card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 16px 20px;
  box-shadow: var(--shadow-sm);
}
.card-title {
  font-size: 12.3px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: var(--text-muted);
  margin-bottom: 12px;
}

/* Badges */
.badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: var(--radius-sm);
  font-size: 12.3px;
  font-weight: 600;
  letter-spacing: 0.3px;
  border: 1px solid transparent;
}
.badge-reminder    { background: #E5F5F8; color: #0091AE; }
.badge-followup    { background: #FEF8EE; color: #B7791F; }
.badge-noshow      { background: #FDEDEE; color: #C53030; }
.badge-mitglied    { background: #E5F8F6; color: #00695C; }
.badge-antrag      { background: #FFF4F1; color: #C05621; }
.badge-erstkontakt { background: #EBF4FF; color: #2B6CB0; }
.badge-pause       { background: #F7FAFC; color: #4A5568; }
.badge-pt          { background: #FAF5FF; color: #553C9A; }

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: var(--radius-md);
  font-size: 14.6px;
  font-weight: 500;
  cursor: pointer;
  border: none;
  transition: all 0.15s;
  font-family: var(--font);
}
.btn-primary { background: var(--primary); color: #fff; border: none; }
.btn-primary:hover { background: var(--primary-hover); }
.btn-secondary { background: transparent; color: var(--text-primary); border: 1px solid #DDE3EE; }
.btn-secondary:hover { background: var(--bg-hover); }
.btn-teal { background: var(--teal); color: white; }
.btn-teal:hover { background: var(--teal-hover); }
.btn-sm { padding: 5px 10px; font-size: 13.4px; }
.btn-ghost { background: none; color: var(--text-secondary); border: none; padding: 4px 8px; }
.btn-ghost:hover { color: var(--text-primary); }

/* Inputs */
input, select, textarea {
  font-family: var(--font);
  font-size: 15.7px;
  color: var(--text-primary);
  background: white;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 8px 12px;
  width: 100%;
  transition: border-color 0.15s;
}
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(255,122,89,0.1);
}

/* Avatar */
.avatar {
  width: 36px; height: 36px;
  border-radius: 50%;
  display: flex; align-items: center;
  justify-content: center;
  font-size: 14.6px; font-weight: 500;
  flex-shrink: 0;
}
.avatar-teal   { background: #E5F8F6; color: #00695C; }
.avatar-blue   { background: #EBF4FF; color: #2B6CB0; }
.avatar-orange { background: #FFF4F1; color: #C05621; }
.avatar-purple { background: #FAF5FF; color: #553C9A; }

/* Bottom Nav (Mobile) */
.bottom-nav {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  height: 62px;
  background: white;
  border-top: 1px solid var(--border);
  z-index: 100;
}
@media (max-width: 767px) {
  body.nav-page {
    grid-template-areas: "pwa-header" "topbar" "main";
    grid-template-columns: 1fr;
    grid-template-rows: auto var(--topbar-height) 1fr;
    padding-bottom: 62px;
  }
  .pwa-header { display: flex; grid-area: pwa-header; }
  .bottom-nav { display: flex; }
  .sidebar { display: none; }
  .main-content {
    padding: 16px;
    padding-bottom: 24px;
  }
}
.bottom-nav-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  color: var(--text-muted);
  text-decoration: none;
  font-size: 11.2px;
  font-weight: 500;
  border-top: 2px solid transparent;
  transition: all 0.15s;
}
.bottom-nav-item.active {
  color: var(--primary);
  border-top-color: var(--primary);
}
.bottom-nav-item svg { width: 20px; height: 20px; }

/* Divider */
.divider { height: 1px; background: var(--border); margin: 16px 0; }

/* Page Header */
.page-header { margin-bottom: 20px; }
.page-title { font-size: 16px; font-weight: 700; color: var(--text-primary); }
.page-subtitle { font-size: 14.6px; color: var(--text-secondary); margin-top: 2px; }

/* Todo Item */
.todo-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 14px 16px;
  margin-bottom: 8px;
  box-shadow: var(--shadow-sm);
  transition: box-shadow 0.15s;
}
.todo-card:hover { box-shadow: var(--shadow-md); }
.todo-card-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.todo-card-name {
  font-size: 14.6px;
  font-weight: 500;
  color: var(--text-primary);
  flex: 1;
}
.todo-card-meta {
  font-size: 13.4px;
  color: var(--text-secondary);
  margin-top: 1px;
}
.todo-card-actions {
  display: flex;
  gap: 8px;
  border-top: 1px solid var(--border);
  padding-top: 10px;
  flex-wrap: wrap;
}

/* Section Header */
.section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
  margin-top: 20px;
}
.section-title {
  font-size: 12.3px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: var(--text-muted);
}
.section-count {
  font-size: 12.3px;
  font-weight: 600;
  background: var(--bg-secondary);
  color: var(--text-secondary);
  padding: 2px 8px;
  border-radius: 10px;
}

/* Accent borders */
.todo-card.accent-teal    { border-left: 3px solid var(--teal); }
.todo-card.accent-orange  { border-left: 3px solid var(--primary); }
.todo-card.accent-warning { border-left: 3px solid var(--warning); }
.todo-card.accent-info    { border-left: 3px solid var(--info); }

/* Accordion */
.accordion { margin-bottom: 8px; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--border); background: var(--bg-card); box-shadow: var(--shadow-sm); }
.accordion-header { display: flex; align-items: center; padding: 12px 16px; cursor: pointer; user-select: none; gap: 10px; }
.accordion-header:hover { background: var(--bg-hover); }
.accordion-header--empty { cursor: default; opacity: .6; pointer-events: none; }
.accordion-title { flex: 1; font-weight: 600; color: var(--text-primary); font-size: 15.7px; }
.accordion-count { background: var(--bg-secondary); color: var(--text-secondary); border: 1px solid var(--border); border-radius: 10px; padding: 2px 8px; font-size: 12.3px; font-weight: 600; }
.accordion-count--empty { opacity: .5; }
.accordion-chevron { color: var(--text-muted); font-size: 20.2px; transition: transform 0.2s; line-height: 1; }
.accordion-header.open .accordion-chevron { transform: rotate(90deg); }
.accordion-body { padding: 8px 12px 12px; background: var(--bg-page); border-top: 1px solid var(--border); }

/* Todo action buttons */
.btn-action { flex: 1; border-radius: var(--radius-md); padding: 7px 10px; font-size: 13.4px; font-weight: 500; cursor: pointer; white-space: nowrap; border: 1px solid; text-align: center; font-family: var(--font); transition: opacity 0.1s; }
.btn-action:active { opacity: .75; }
.btn-action-edit    { background: #FFF4F1; color: var(--primary); border-color: var(--primary); }
.btn-action-done    { background: var(--success-bg); color: #00695C; border-color: var(--teal); }
.btn-action-cancel  { background: var(--danger-bg); color: var(--danger); border-color: var(--danger); }
.btn-action-send    { background: var(--success-bg); color: #00695C; border-color: var(--teal); }
.btn-action-discard { background: var(--danger-bg); color: var(--danger); border-color: var(--danger); }

/* Reminder card */
.reminder-card { background: var(--bg-card); border: 1px solid var(--border); border-left: 3px solid var(--warning); border-radius: var(--radius-lg); padding: 14px 16px; margin-bottom: 8px; box-shadow: var(--shadow-sm); }
.reminder-card-time { font-size: 13.4px; color: var(--warning); font-weight: 600; margin-top: 4px; }
.reminder-textarea { width: 100%; min-height: 80px; margin-top: 8px; font-size: 15.7px; }

/* PT Heute Banner */
.pt-heute-banner { display: block; background: var(--teal); color: white; text-align: center; padding: 12px 16px; border-radius: var(--radius-lg); font-weight: 600; text-decoration: none; margin-bottom: 16px; }
.pt-heute-banner:hover { background: var(--teal-hover); }

/* Button modifiers */
.btn-lg    { padding: 16px 20px; font-size: 17.9px; }
.btn-block { width: 100%; justify-content: center; }

/* PT Heute */
.pt-buttons { display: flex; flex-direction: column; gap: 12px; margin-top: 12px; }
.pt-uhrzeit { font-size: 29.1px; font-weight: 700; color: var(--teal); line-height: 1; }
.pt-msg { font-size: 15.7px; font-weight: 600; text-align: center; min-height: 20px; margin-top: 10px; }
.pt-msg.ok  { color: var(--success); }
.pt-msg.err { color: var(--danger); }
.pt-buttons[data-active="Phase_3_After_Erschienen"] .btn-pt-erschienen { box-shadow: 0 0 0 2px var(--teal); }
.pt-buttons[data-active="Phase_3_After_Erschienen"] .btn-pt-noshow     { opacity: .35; }
.pt-buttons[data-active="Phase_3_NoShow_1"]         .btn-pt-noshow     { box-shadow: 0 0 0 2px var(--danger); }
.pt-buttons[data-active="Phase_3_NoShow_1"]         .btn-pt-erschienen { opacity: .35; }

/* Misc todo */
.todo-empty { text-align: center; color: var(--text-muted); padding: 60px 20px; font-size: 17.9px; }
.todo-empty-icon { display: block; font-size: 53.8px; margin-bottom: 12px; }
.todo-mehr { color: var(--text-muted); font-size: 14.6px; text-align: center; padding: 8px; cursor: pointer; }
.todo-mehr:hover { color: var(--text-primary); }
.error-box { background: var(--danger-bg); border: 1px solid var(--danger); border-radius: var(--radius-md); padding: 14px; color: var(--danger); margin-bottom: 16px; font-size: 15.7px; }
.todo-item-preview { font-size: 13.4px; color: var(--text-muted); margin-top: 3px; font-style: italic; }

/* KOM Center  -  3-Column Layout */
body.kom-page .main-content { overflow: hidden; padding: 0; }
body.lk-page  .main-content { overflow: hidden; padding: 0; }
.kom-layout { display: flex; height: calc(100vh - var(--topbar-height)); overflow: hidden; }
.kom-left  { width: 20%; flex-shrink: 0; display: flex; flex-direction: column; overflow: hidden; }
.kom-mid   { width: 50%; min-width: 0; display: flex; flex-direction: column; overflow: hidden; }
.kom-aside { width: 30%; flex-shrink: 0; display: flex; flex-direction: column; overflow-y: auto; background: var(--bg-card); }
.kom-resizer { width: 4px; flex-shrink: 0; cursor: col-resize; background: #DDE3EE; transition: background 0.2s; }

/* Lead list */
.kom-filter-bar { display: flex; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--border); flex-wrap: wrap; background: var(--bg-card); flex-shrink: 0; }
.kom-filter-bar input, .kom-filter-bar select { background: var(--bg-page); color: var(--text-primary); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 6px 8px; font-size: 14.6px; font-family: var(--font); width: auto; }
.kom-filter-bar input { flex: 1; min-width: 80px; }
.kom-lead-count { font-size: 13.4px; color: var(--text-muted); padding: 5px 12px; border-bottom: 1px solid var(--border); background: var(--bg-secondary); flex-shrink: 0; }
.kom-lead-list { flex: 1; overflow-y: auto; }
.kom-lead-item { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-bottom: 1px solid var(--border); text-decoration: none; color: inherit; transition: background 0.1s; }
.kom-lead-item:hover { background: var(--bg-hover); }
.kom-lead-item.active { background: #EBF8F6; border-left: 3px solid var(--teal); }
.kom-lead-item.hidden { display: none; }
.kom-lead-item.neu-ungelesen { background: #FFEEE5; border-left: 4px solid #FF6B35; }
.kom-lead-item.neu-ungelesen:hover { background: #FFD9C7; }
.kom-lead-info { flex: 1; min-width: 0; }
.kom-lead-row1 { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-bottom: 3px; }
.kom-lead-name { font-size: 14.6px; font-weight: 600; color: var(--text-primary); }
.kom-lead-row2 { display: flex; gap: 6px; flex-wrap: wrap; }
.kom-lead-row2 span { font-size: 12.3px; color: var(--text-secondary); }
.kom-lead-aktion { color: var(--text-muted) !important; font-style: italic; }

/* Phase badges (light) */
.kom-phase-badge { font-size: 11.2px; font-weight: 700; padding: 2px 5px; border-radius: var(--radius-sm); white-space: nowrap; flex-shrink: 0; border: 1px solid; }
.kom-badge--gold   { background: #FEF8EE; color: #B7791F; border-color: #F5C26B; }
.kom-badge--blue   { background: #EBF4FF; color: #2B6CB0; border-color: #90CDF4; }
.kom-badge--green  { background: var(--success-bg); color: #00695C; border-color: var(--teal); }
.kom-badge--red    { background: var(--danger-bg); color: var(--danger); border-color: var(--danger); }
.kom-badge--orange { background: #FFF4F1; color: #C05621; border-color: var(--primary); }
.kom-badge--gray   { background: #F7FAFC; color: #4A5568; border-color: #CBD5E0; }
.unread-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--teal); flex-shrink: 0; }
.kom-badge--dim    { background: #F7FAFC; color: #718096; border-color: #E2E8F0; }

/* Conversation header */
.kom-back-btn { display: block; padding: 10px 14px; font-size: 15.7px; color: var(--primary); text-decoration: none; border-bottom: 1px solid var(--border); background: var(--bg-secondary); flex-shrink: 0; }
.kom-conv-header { padding: 12px 16px; background: var(--bg-card); border-bottom: 1px solid var(--border); flex-shrink: 0; }
.kom-conv-name { font-size: 16.8px; font-weight: 600; color: var(--text-primary); text-decoration: none; display: block; }
.kom-conv-name:hover { color: var(--primary); }
.kom-conv-meta { font-size: 13.4px; color: var(--text-secondary); margin-top: 3px; }
.kom-conv-meta-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.kom-pt-datum { cursor: pointer; border-bottom: 1px dashed var(--teal); color: inherit; }
.kom-pt-datum:hover { color: var(--teal); }
.kom-pt-datum--leer { color: var(--text-muted); border-bottom-color: var(--text-muted); }
.kom-pt-bar { background: #F8F9FB; border-bottom: 1px solid var(--border); padding: 10px 16px; }
@media (max-width: 767px) { .kom-pt-bar { display: none; } }
.kom-pt-datum--leer:hover { color: var(--teal); border-bottom-color: var(--teal); }
.kom-btn-kontakt { background: var(--bg-secondary); color: var(--text-secondary); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 4px 10px; font-size: 13.4px; cursor: pointer; white-space: nowrap; font-family: var(--font); }
.kom-btn-kontakt:hover { background: var(--bg-hover); color: var(--text-primary); }
.kom-kind-info { font-size: 13.4px; color: var(--text-secondary); margin-top: 4px; }
.kom-empty-mid { display: flex; align-items: center; justify-content: center; flex: 1; color: var(--text-muted); font-size: 17.9px; }

/* Phase row (aside) */
.kom-phase-row { display: flex; align-items: center; gap: 8px; padding: 12px; flex-wrap: wrap; border-bottom: 1px solid var(--border); flex-shrink: 0; }
.kom-phase-select { background: var(--bg-page); color: var(--text-primary); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 6px 8px; font-size: 14.6px; flex: 1; min-width: 120px; font-family: var(--font); }
.kom-phase-msg { font-size: 13.4px; color: var(--success); font-weight: 500; }
.kom-phase-msg.err { color: var(--danger); }
.kom-wv-info { padding: 8px 12px; background: var(--warning-bg); border-bottom: 1px solid var(--warning); font-size: 13.4px; color: #B7791F; line-height: 1.4; flex-shrink: 0; }
.kom-btn-wv { background: var(--warning-bg); color: #B7791F; border: 1px solid var(--warning); border-radius: var(--radius-md); padding: 8px 12px; font-size: 14.6px; font-weight: 500; cursor: pointer; font-family: var(--font); width: 100%; text-align: left; }
.kom-btn-wv:hover { background: #FDF3DC; }

/* Verlauf */
.kom-verlauf-wrap { flex: 1; overflow-y: auto; padding: 12px 16px; background: var(--bg-page); }
.verlauf-timeline { display: flex; flex-direction: column; }
.verlauf-eintrag { display: flex; gap: 10px; padding-bottom: 14px; position: relative; }
.verlauf-eintrag::before { content: ''; position: absolute; left: 74px; top: 18px; bottom: 0; width: 1px; background: var(--border); }
.verlauf-eintrag:last-child::before { display: none; }
.verlauf-links { flex: 0 0 70px; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; padding-top: 1px; }
.verlauf-zeit { font-size: 12.3px; color: var(--teal); white-space: nowrap; line-height: 1.3; text-align: right; }
.verlauf-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--bg-card); border: 2px solid var(--teal); flex-shrink: 0; margin-top: 2px; align-self: flex-end; }
.verlauf-rechts { flex: 1; min-width: 0; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 8px 10px; margin-left: 8px; }
.verlauf-kopf { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; flex-wrap: wrap; }
.verlauf-absender { font-size: 11.2px; font-weight: 700; padding: 2px 6px; border-radius: var(--radius-sm); letter-spacing: 0.5px; text-transform: uppercase; }
.verlauf-absender--system { background: var(--success-bg); color: #00695C; }
.verlauf-absender--sl     { background: #FEF8EE; color: #B7791F; }
.verlauf-absender--int    { background: #EBF4FF; color: #2B6CB0; }
.verlauf-aktion   { font-size: 14.6px; color: var(--text-primary); font-weight: 500; }
.verlauf-szenario { font-size: 12.3px; color: var(--text-muted); }
.verlauf-text { font-size: 14.6px; color: var(--text-secondary); margin-top: 5px; line-height: 1.5; white-space: pre-wrap; word-break: break-word; border-top: 1px solid var(--border); padding-top: 5px; }
.verlauf-empty   { font-size: 15.7px; color: var(--text-muted); text-align: center; padding: 20px 0; }
.verlauf-loading { font-size: 15.7px; color: var(--text-muted); text-align: center; padding: 20px 0; }

/* Compose area */
.kom-compose { display: flex; flex-direction: column; gap: 8px; padding: 12px; position: sticky; top: 0; z-index: 20; background: var(--bg-card); border-bottom: 1px solid var(--border); }
.kom-compose-label { font-size: 12.3px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-muted); }
.kom-textarea { background: white; color: var(--text-primary); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 8px 10px; font-size: 14.6px; font-family: var(--font); resize: vertical; line-height: 1.5; width: 100%; box-sizing: border-box; }
.kom-textarea:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(255,122,89,.1); }
.kom-textarea--sm { min-height: 48px; }
.kom-textarea:not(.kom-textarea--sm) { min-height: 80px; }
.kom-btn-ki { background: #FF6B35; color: #fff; border: none; border-radius: var(--radius-md); padding: 8px 14px; font-size: 14.6px; font-weight: 500; cursor: pointer; width: 100%; font-family: var(--font); }
.kom-btn-ki:hover { background: #E55A25; }
.kom-btn-ki:disabled { opacity: .5; cursor: default; }
.kom-kanal-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.kom-kanal-label { display: flex; align-items: center; gap: 5px; font-size: 14.6px; cursor: pointer; color: var(--text-primary); }
.kom-kanal-label.disabled { color: var(--text-muted); cursor: default; }
.kom-kanal-label input { accent-color: var(--teal); width: 15px; height: 15px; }
.kom-btn-send { margin-left: auto; background: var(--teal); color: white; border: none; border-radius: var(--radius-md); padding: 8px 16px; font-size: 14.6px; font-weight: 600; cursor: pointer; font-family: var(--font); }
.kom-btn-send:hover { background: var(--teal-hover); }
.kom-btn-send:disabled { background: var(--text-muted); color: white; cursor: default; }
.kom-btn-plan { background: var(--bg-secondary); color: var(--text-secondary); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 7px 10px; font-size: 13.4px; font-weight: 500; cursor: pointer; white-space: nowrap; font-family: var(--font); }
.kom-btn-plan:hover { background: var(--bg-hover); color: var(--text-primary); }
.kom-btn-plan:disabled { opacity: .5; cursor: default; }
.kom-send-msg { font-size: 14.6px; min-height: 18px; }
.kom-send-msg.ok  { color: var(--success); font-weight: 500; }
.kom-send-msg.err { color: var(--danger); }
.kom-entwurf-hint { color: #B7791F; font-size: 13.4px; }
.kom-geplant-aktionen { border: 1px solid var(--warning); border-radius: var(--radius-md); padding: 10px; background: var(--warning-bg); }
.kom-geplant-aktionen-label { color: #B7791F; font-size: 13.4px; margin-bottom: 8px; }
.kom-versand-planer { margin-top: 8px; gap: 8px; align-items: center; flex-wrap: wrap; }

/* === BushinFlow Modal System === */
.bf-overlay { position: fixed; inset: 0; background: rgba(15,23,41,0.5); z-index: 999; display: none; }
.bf-modal { position: fixed; top: 50%; left: 50%; transform: translate(-50%,-50%); background: #fff; border-radius: 12px; box-shadow: 0 8px 32px rgba(15,23,41,0.18); z-index: 1000; min-width: 300px; max-width: 90vw; display: none; overflow: hidden; }
.bf-modal::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #FF6B35; }
.bf-modal.danger::before { background: #E53E3E; }
.bf-modal.success::before { background: #38A169; }
.bf-modal.warning::before { background: #D69E2E; }
.bf-modal-body { padding: 20px 20px 20px 24px; }
.bf-modal-title { font-weight: 700; font-size: 15px; color: #0F1729; margin-bottom: 6px; }
.bf-modal-text { font-size: 13px; color: #4A5568; margin-bottom: 16px; line-height: 1.5; }
.bf-modal-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 16px; }
.bf-modal-label { display: block; font-size: 13.4px; color: var(--text-muted); margin-bottom: 4px; text-transform: uppercase; letter-spacing: .04em; }
.bf-btn-primary { background: #FF6B35; color: #fff; border: none; border-radius: 6px; padding: 8px 16px; font-size: 13px; font-weight: 600; cursor: pointer; }
.bf-btn-secondary { background: #fff; color: #0F1729; border: 1px solid #DDE3EE; border-radius: 6px; padding: 8px 16px; font-size: 13px; font-weight: 600; cursor: pointer; }
.bf-btn-danger { background: #E53E3E; color: #fff; border: none; border-radius: 6px; padding: 8px 16px; font-size: 13px; font-weight: 600; cursor: pointer; }
.bf-toast { position: fixed; bottom: 24px; right: 24px; background: #fff; border-radius: 12px; box-shadow: 0 8px 32px rgba(15,23,41,0.18); z-index: 9999; min-width: 260px; max-width: 380px; overflow: hidden; display: none; animation: bfSlideIn 0.3s ease; }
.bf-toast::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #38A169; }
.bf-toast.error::before { background: #E53E3E; }
.bf-toast.warning::before { background: #D69E2E; }
.bf-toast-body { padding: 14px 16px 14px 20px; font-size: 13px; color: #0F1729; font-weight: 600; }
@keyframes bfSlideIn { from { transform: translateX(120%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
.kom-modal-label { display: block; font-size: 13.4px; color: var(--text-muted); margin-bottom: 4px; text-transform: uppercase; letter-spacing: .04em; }

/* Mobile / Desktop responsive */
@media (max-width: 767px) {
  .kom-layout { flex-direction: column; height: auto; overflow: visible; }
  .kom-left { display: none; width: 100% !important; flex: none !important; }
  .kom-layout:not(.has-lead) .kom-left { display: flex !important; width: 100%; flex: none !important; }
  .kom-layout:not(.has-lead) .kom-mid { display: none !important; }
  .kom-mid { width: 100% !important; flex: none !important; min-height: 60vh; }
  .kom-aside { display: none; width: 100% !important; flex: none !important; }
  .kom-layout.has-lead .kom-aside { display: none; width: 100%; } /* Tab-gesteuert via JS */
  .kom-layout.has-lead .kom-mid { display: block; }
  .kom-resizer { display: none; }
  .kom-verlauf-wrap { max-height: 35vh; }
  .kom-tab-bar { display: flex; width: 100%; border-bottom: 1px solid var(--border); background: var(--bg-card); flex-shrink: 0; }
  .kom-tab { flex: 1; padding: 10px 0; border: none; background: none; cursor: pointer; font-size: 14px; color: var(--text-muted); font-weight: 500; border-bottom: 2px solid transparent; }
  .kom-tab.active { color: var(--primary); border-bottom-color: var(--primary); font-weight: 600; }
}
@media (min-width: 768px) {
  .kom-back-btn { display: none; }
  .kom-layout:not(.has-lead) .kom-aside { display: none; }
  .kom-layout:not(.has-lead) .kom-mid { border-right: none; }
  .kom-tab-bar { display: none; }
}

/* Lead Karte */
.lk-header { background: #6D7DA1; padding: 10px 16px; display: flex; align-items: center; gap: 10px; }
.lk-back { background: none; border: none; color: white; font-size: 22.4px; cursor: pointer; padding: 4px 6px; flex-shrink: 0; line-height: 1; opacity: .7; }
.lk-back:hover { opacity: 1; }
.lk-header-center { flex: 1; min-width: 0; }
.lk-header-name { font-size: 19.0px; font-weight: 700; color: white; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lk-header-meta { font-size: 13.4px; color: rgba(255,255,255,.5); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lk-layout { display: flex; min-height: calc(100vh - var(--topbar-height)); }
.lk-left  { width: 40%; border-right: 1px solid var(--border); overflow-y: auto; background: var(--bg-card); }
.lk-right { flex: 1; display: flex; flex-direction: column; min-width: 0; background: var(--bg-page); }
.lk-section { padding: 14px 16px; border-bottom: 1px solid var(--border); }
.lk-section-title { font-size: 11.2px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px; color: var(--text-muted); margin-bottom: 8px; }
.lk-field-label { font-size: 12.3px; color: var(--text-muted); display: block; margin-bottom: 3px; text-transform: uppercase; letter-spacing: 0.5px; }
.lk-phase-select { width: 100%; background: var(--bg-page); color: var(--text-primary); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 7px 10px; font-size: 14.6px; font-family: var(--font); }
.lk-phase-msg { font-size: 13.4px; color: var(--success); margin-top: 4px; display: block; font-weight: 500; }
.lk-phase-msg.err { color: var(--danger); }
.lk-pt-datum { cursor: pointer; border-bottom: 1px dashed var(--teal); color: var(--text-primary); font-size: 15.7px; display: inline-block; }
.lk-pt-datum:hover { color: var(--teal); }
.lk-pt-datum--leer { color: var(--text-muted); border-bottom-color: var(--text-muted); }
.lk-pt-datum--leer:hover { color: var(--teal); border-bottom-color: var(--teal); }
.lk-wv-display { font-size: 14.6px; color: #B7791F; margin-bottom: 8px; }
.lk-btn-sm { background: var(--bg-secondary); color: var(--text-secondary); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 4px 10px; font-size: 13.4px; cursor: pointer; font-family: var(--font); }
.lk-btn-sm:hover { background: var(--bg-hover); color: var(--text-primary); }
.lk-btn-sm.red { color: var(--danger); border-color: var(--danger); background: var(--danger-bg); }
.lk-btn-sm.red:hover { background: #fbd5d7; }
.lk-notizen { width: 100%; background: white; color: var(--text-primary); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 8px 10px; font-size: 14.6px; font-family: var(--font); resize: vertical; min-height: 80px; line-height: 1.5; box-sizing: border-box; }
.lk-notizen:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(255,122,89,.1); }
.lk-notiz-msg { font-size: 13.4px; margin-top: 4px; min-height: 16px; }
.lk-notiz-msg.ok { color: var(--success); }
.lk-notiz-msg.err { color: var(--danger); }

/* Lead Karte  -  Verlauf chat bubbles (scoped, no JS changes) */
.lk-verlauf-area { flex: 1; padding: 12px 14px; overflow-y: auto; max-height: 45vh; }

/* Lead Karte  -  Compose */
.lk-compose { padding: 10px 14px; border-top: 1px solid var(--border); display: flex; flex-direction: column; gap: 7px; background: var(--bg-card); }
.lk-compose-label { font-size: 11.2px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-muted); }
.lk-input { width: 100%; background: white; color: var(--text-primary); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 7px 10px; font-size: 14.6px; font-family: var(--font); box-sizing: border-box; }
.lk-input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(255,122,89,.1); }
.lk-textarea { width: 100%; background: white; color: var(--text-primary); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 9px 10px; font-size: 15.7px; font-family: var(--font); resize: vertical; line-height: 1.5; min-height: 88px; box-sizing: border-box; }
.lk-textarea:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(255,122,89,.1); }
.lk-geplant-wrap { margin: 10px 14px 0; position: relative; overflow: hidden; border-radius: var(--radius-lg); z-index: 10; flex-shrink: 0; }
.lk-kanal-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.lk-kanal-label { display: flex; align-items: center; gap: 5px; font-size: 14.6px; cursor: pointer; color: var(--text-primary); }
.lk-kanal-label.disabled { color: var(--text-muted); cursor: default; }
.lk-kanal-label input { accent-color: var(--teal); width: 15px; height: 15px; }
.lk-btn-plan { background: var(--bg-secondary); color: var(--text-secondary); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 7px 12px; font-size: 13.4px; font-weight: 500; cursor: pointer; white-space: nowrap; font-family: var(--font); }
.lk-btn-plan:hover { background: var(--bg-hover); color: var(--text-primary); }
.lk-send-msg { font-size: 13.4px; min-height: 16px; }
.lk-send-msg.ok  { color: var(--success); font-weight: 500; }
.lk-send-msg.err { color: var(--danger); }
.lk-planer-row { gap: 8px; align-items: center; flex-wrap: wrap; }
.lk-entwurf-hint { color: #B7791F; font-size: 12.3px; }
.lk-geplant-aktionen { border: 1px solid var(--warning); border-radius: var(--radius-md); padding: 10px; background: var(--warning-bg); }
.lk-geplant-aktionen-label { color: #B7791F; font-size: 13.4px; margin-bottom: 8px; }

/* Kontext-Dropdown */
.kontext-stichpunkte-wrap { position: relative; }
.kontext-menu { display: none; position: absolute; right: 0; bottom: 100%; margin-bottom: 2px; z-index: 100; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-md); box-shadow: var(--shadow-md); min-width: 160px; }
.kontext-menu-item { display: block; width: 100%; background: none; border: none; border-bottom: 1px solid var(--border); padding: 9px 14px; font-size: 14.6px; font-family: var(--font); text-align: left; cursor: pointer; color: var(--text-primary); }
.kontext-menu-item:last-child { border-bottom: none; }
.kontext-menu-item:hover { background: var(--bg-hover); }

/* Mobile tabs */
.lk-tabs { display: none; position: fixed; bottom: 62px; left: 0; right: 0; z-index: 90; background: var(--bg-card); border-top: 1px solid var(--border); }
.lk-tab { flex: 1; background: none; border: none; border-top: 2px solid transparent; color: var(--text-muted); font-size: 14.6px; font-weight: 600; padding: 10px 0; cursor: pointer; font-family: var(--font); }
.lk-tab.tab-active { color: var(--primary); border-top-color: var(--primary); }

@media (max-width: 767px) {
  .lk-layout { display: block; }
  .lk-left  { width: 100%; border-right: none; display: none; overflow-y: auto; }
  .lk-right { display: flex; }
  .lk-layout.tab-lead .lk-left  { display: block; }
  .lk-layout.tab-lead .lk-right { display: none; }
  .lk-tabs { display: flex; }
  .lk-verlauf-area { max-height: 35vh; }
  body.lk-page { padding-bottom: 120px; }
  body.lk-page .main-content { overflow-y: auto; }
}
@media (min-width: 768px) {
  body.lk-page .main-content { overflow: hidden; padding: 0; display: flex; flex-direction: column; }
  body.lk-page .lk-layout { flex: 1; min-height: 0; overflow: hidden; }
  body.lk-page .lk-left  { height: 100%; overflow-y: auto; }
  body.lk-page .lk-right { height: 100%; overflow-y: auto; }
  body.lk-page .lk-verlauf-area { max-height: none; }
  .lk-tabs { display: none !important; }
}

/* Leads Page */
.leads-header { background: var(--navy-light); padding: 14px 20px 12px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.leads-header-title { color: var(--text-white); font-size: 22.4px; font-weight: 600; display: flex; align-items: center; gap: 8px; margin: 0; }
.leads-count-badge { background: rgba(255,255,255,0.2); color: var(--text-white); font-size: 13.4px; font-weight: 600; padding: 2px 8px; border-radius: 10px; }
.leads-header-standort { color: rgba(255,255,255,0.72); font-size: 14.6px; margin-left: auto; }

.leads-filter-bar { display: flex; gap: 8px; padding: 12px 16px; background: var(--bg-card); border-bottom: 1px solid var(--border); flex-wrap: wrap; }
.leads-filter-bar input, .leads-filter-bar select { margin: 0; width: auto; }
.leads-filter-search { flex: 2; min-width: 150px; }
.leads-filter-phase, .leads-filter-sort, .leads-filter-standort { flex: 1; min-width: 120px; }

.leads-sort-strip { display: flex; align-items: center; gap: 8px; padding: 8px 16px 6px; background: var(--bg-secondary); border-bottom: 1px solid var(--border); flex-wrap: wrap; }
.leads-sort-label { font-size: 13.4px; color: var(--text-muted); }
.leads-sort-link { font-size: 13.4px; color: var(--text-secondary); text-decoration: none; padding: 2px 8px; border-radius: var(--radius-md); border: 1px solid var(--border); white-space: nowrap; }
.leads-sort-link:hover { color: var(--primary); border-color: var(--primary); }
.leads-sort-link--aktiv { color: var(--primary); border-color: var(--primary); background: #FFF4F1; }

.leads-count-bar { padding: 8px 16px 4px; font-size: 13.4px; color: var(--text-muted); }
.leads-list { display: flex; flex-direction: column; gap: 6px; padding: 10px 16px 80px; }

.lead-item { display: flex; align-items: center; gap: 12px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 12px 14px; text-decoration: none; color: inherit; transition: background 0.15s, border-color 0.15s; }
.lead-item:hover { background: var(--bg-hover); border-color: var(--primary); }
.lead-item--neu { border-left: 3px solid var(--teal); }
.lead-item-body { flex: 1; min-width: 0; }
.lead-item-row1 { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 3px; }
.lead-item-name { font-weight: 600; font-size: 15.7px; color: var(--text-primary); }
.lead-item-meta { font-size: 13.4px; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lead-item-last { font-size: 12.3px; color: var(--text-muted); margin-top: 2px; }
.leads-neu-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--teal); flex-shrink: 0; }
.lead-item-arrow { color: var(--text-muted); flex-shrink: 0; }

.leads-error { background: var(--danger-bg); border: 1px solid var(--danger); border-radius: var(--radius-md); padding: 12px 16px; margin: 16px; color: var(--danger); font-size: 15.7px; }
.leads-empty { text-align: center; color: var(--text-muted); padding: 40px 0; font-size: 15.7px; }
.leads-login-box { margin: 40px 16px; }
.leads-login-box p { color: var(--text-secondary); margin-bottom: 10px; }

/* -- Management Pages ------------------------------------------------------- */
/* shared header */
.mgmt-page-header { background: var(--navy-light); padding: 14px 20px; }
.mgmt-page-header h1 { color: var(--text-white); font-size: 22.4px; font-weight: 600; margin: 0; }
.mgmt-breadcrumb { font-size: 13.4px; color: rgba(255,255,255,0.65); margin-bottom: 4px; }
.mgmt-breadcrumb a { color: rgba(255,255,255,0.75); text-decoration: none; }
.mgmt-breadcrumb a:hover { color: var(--text-white); }
.mgmt-header-sub { font-size: 14.6px; color: rgba(255,255,255,0.7); margin-top: 3px; }
.mgmt-error { background: var(--danger-bg); border: 1px solid var(--danger); border-radius: var(--radius-md); padding: 12px 16px; color: var(--danger); margin: 12px 16px; font-size: 15.7px; }
.mgmt-container { padding: 16px; max-width: 700px; display: flex; flex-direction: column; gap: 16px; }
.mgmt-section-title { font-size: 13.4px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.8px; color: var(--text-muted); margin-bottom: 10px; }
.mgmt-save-row { margin-top: 14px; display: flex; align-items: center; gap: 10px; }
.mgmt-cta-btn { display: block; background: var(--primary); color: white; font-weight: 700; text-align: center; padding: 14px; border-radius: var(--radius-lg); text-decoration: none; font-size: 16.8px; margin-bottom: 16px; transition: background 0.15s; }
.mgmt-cta-btn:hover { background: var(--primary-hover); }
.msg { font-size: 14.6px; min-height: 16px; }
.msg.ok { color: var(--success); }
.msg.err { color: var(--danger); }

/* Vertraege */
.mgmt-filter { display: flex; gap: 8px; padding: 12px 16px; border-bottom: 1px solid var(--border); flex-wrap: wrap; align-items: center; background: var(--bg-card); }
.mgmt-filter input, .mgmt-filter select { margin: 0; width: auto; flex: 1; min-width: 120px; }
.mgmt-count { font-size: 13.4px; color: var(--text-muted); margin-left: auto; white-space: nowrap; }
.mgmt-wrap { overflow-x: auto; padding: 0 16px 80px; }
.mgmt-empty { text-align: center; color: var(--text-muted); padding: 60px 0; font-size: 15.7px; }
table.mgmt-table { width: 100%; border-collapse: collapse; margin-top: 16px; font-size: 14.6px; table-layout: fixed; }
.mgmt-table th { background: var(--bg-secondary); color: var(--text-muted); font-size: 12.3px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; padding: 8px 10px; text-align: left; border-bottom: 1px solid var(--border); white-space: nowrap; cursor: pointer; user-select: none; overflow: hidden; }
.mgmt-table th:hover { color: var(--text-primary); }
.mgmt-row { border-bottom: 1px solid var(--border); transition: background 0.1s; }
.mgmt-row:hover { background: var(--bg-hover); }
.mgmt-row.hidden { display: none; }
.mgmt-td { padding: 10px; vertical-align: middle; }
.mgmt-td--sm { white-space: nowrap; overflow: hidden; }
.mgmt-td--trunc { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 0; }
.mgmt-td--iban { overflow: hidden; }
.mgmt-td--iban code { font-size: 13.4px; color: var(--text-muted); font-family: 'Courier New', monospace; }
.mgmt-name { font-weight: 600; font-size: 15.7px; color: var(--text-primary); }
.mgmt-sub { font-size: 12.3px; color: var(--text-muted); }
.mgmt-pdf-link { color: var(--primary); text-decoration: none; font-weight: 600; font-size: 13.4px; border: 1px solid var(--primary); border-radius: var(--radius-md); padding: 2px 8px; }
.mgmt-pdf-link:hover { background: #FFF4F1; }
.mgmt-pdf-missing { color: var(--text-muted); font-size: 13.4px; }
.mgmt-cards-mobile { display: flex; flex-direction: column; gap: 10px; padding: 12px 16px 80px; }
.mgmt-card-item { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 14px; position: relative; }
.mgmt-card-item.hidden { display: none; }
.mgmt-card-link { display: block; text-decoration: none; color: inherit; }
.mgmt-card-name { font-size: 17.9px; font-weight: 600; color: var(--text-primary); margin-bottom: 5px; }
.mgmt-card-meta { font-size: 14.6px; color: var(--text-secondary); line-height: 1.6; }
.mgmt-card-pdf { display: inline-block; margin-top: 10px; color: var(--primary); font-size: 13.4px; font-weight: 600; border: 1px solid var(--primary); border-radius: var(--radius-md); padding: 3px 10px; text-decoration: none; }
.mgmt-card-pdf:hover { background: #FFF4F1; }
@media (min-width: 768px) { .mgmt-cards-mobile { display: none; } .mgmt-wrap { display: block; } }
@media (max-width: 767px) { .mgmt-wrap { display: none; } }

/* Overview */
.mgmt-cards { display: flex; flex-direction: column; gap: 12px; padding: 20px 16px; }
.mgmt-card { display: flex; align-items: center; gap: 16px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 18px 16px; text-decoration: none; color: inherit; transition: border-color 0.15s, background 0.15s; }
.mgmt-card:hover { border-color: var(--primary); background: var(--bg-hover); }
.mgmt-card-icon { font-size: 31.4px; width: 44px; text-align: center; flex-shrink: 0; }
.mgmt-card-content { flex: 1; min-width: 0; }
.mgmt-card-title { font-size: 16.8px; font-weight: 600; color: var(--text-primary); margin-bottom: 3px; }
.mgmt-card-desc { font-size: 14.6px; color: var(--text-secondary); }
.mgmt-card-arrow { font-size: 22.4px; color: var(--text-muted); flex-shrink: 0; }

/* Platzhalter */
.soon { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 80px 24px; text-align: center; }
.soon-icon { font-size: 58.2px; }
.soon-title { font-size: 22.4px; font-weight: 600; color: var(--text-primary); }
.soon-sub { font-size: 15.7px; color: var(--text-muted); }

/* Kurszeiten */
.kz-form { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 16px; box-shadow: var(--shadow-sm); }
.kz-form-title { font-size: 15.7px; font-weight: 600; color: var(--text-primary); margin-bottom: 14px; }
.kz-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.kz-form-group { display: flex; flex-direction: column; gap: 4px; }
.kz-form-group label { font-size: 12.3px; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.5px; font-weight: 600; }
.kz-form-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.kz-table-wrap { overflow-x: auto; }
table.kz-table { width: 100%; border-collapse: collapse; font-size: 15.7px; }
.kz-table th { background: var(--bg-secondary); color: var(--text-muted); font-size: 12.3px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; padding: 8px 10px; text-align: left; border-bottom: 1px solid var(--border); }
.kz-row { border-bottom: 1px solid var(--border); transition: background 0.1s; }
.kz-row:hover { background: var(--bg-hover); }
.kz-inaktiv td { opacity: 0.5; }
.kz-td { padding: 10px; vertical-align: middle; }
.kz-aktionen { display: flex; gap: 6px; }
.kz-btn { background: var(--bg-secondary); border: 1px solid var(--border); border-radius: var(--radius-md); color: var(--text-secondary); padding: 4px 8px; font-size: 14.6px; cursor: pointer; font-family: var(--font); transition: all 0.15s; }
.kz-btn:hover { background: var(--bg-hover); color: var(--primary); border-color: var(--primary); }
.kz-btn.red:hover { color: var(--danger); border-color: var(--danger); }
.kz-status { font-size: 12.3px; font-weight: 600; padding: 2px 8px; border-radius: 10px; background: var(--bg-secondary); color: var(--text-muted); border: 1px solid var(--border); }
.kz-status.aktiv { background: var(--success-bg); color: #00695C; border-color: var(--teal); }
.kz-empty { color: var(--text-muted); padding: 30px 0; font-size: 15.7px; text-align: center; }
@media (max-width: 500px) { .kz-form-grid { grid-template-columns: 1fr; } }

/* Ferien */
.ferien-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 18px; box-shadow: var(--shadow-sm); }
.ferien-card-title { font-size: 16.8px; font-weight: 600; color: var(--text-primary); margin-bottom: 16px; }
.ferien-grid { display: flex; flex-direction: column; gap: 14px; }
.ferien-label { font-size: 12.3px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-muted); margin-bottom: 6px; }
.ferien-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ferien-row label { font-size: 13.4px; color: var(--text-secondary); white-space: nowrap; }

/* Stammdaten */
.sd-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 18px; box-shadow: var(--shadow-sm); }
.sd-title { font-size: 16.8px; font-weight: 600; color: var(--text-primary); margin-bottom: 16px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.sd-status-badge { font-size: 12.3px; font-weight: 600; padding: 2px 8px; border-radius: 10px; border: 1px solid transparent; }
.sd-status-aktiv { background: var(--success-bg); color: #00695C; border-color: var(--teal); }
.sd-status-inaktiv { background: var(--danger-bg); color: var(--danger); border-color: var(--danger); }
.sd-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sd-group { display: flex; flex-direction: column; gap: 4px; }
.sd-group--full { grid-column: 1 / -1; }
.sd-group label { font-size: 12.3px; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.5px; font-weight: 600; }
@media (max-width: 500px) { .sd-grid { grid-template-columns: 1fr; } }

/* Agenda */
.agenda-summary { display: flex; gap: 10px; padding: 14px 16px; border-bottom: 1px solid var(--border); flex-wrap: wrap; background: var(--bg-card); }
.agenda-badge { font-size: 13.4px; font-weight: 600; padding: 4px 10px; border-radius: 20px; border: 1px solid transparent; }
.agenda-badge--dringend { background: var(--danger-bg); color: var(--danger); border-color: var(--danger); }
.agenda-badge--offen    { background: var(--bg-secondary); color: var(--text-secondary); border-color: var(--border); }
.agenda-badge--erledigt { background: var(--success-bg); color: #00695C; border-color: var(--teal); }
.agenda-content { padding: 16px 16px 100px; display: flex; flex-direction: column; gap: 20px; }
.agenda-kat { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); }
.agenda-kat-titel { font-size: 15.7px; font-weight: 600; padding: 12px 14px; background: var(--bg-secondary); border-bottom: 1px solid var(--border); }
.agenda-liste { list-style: none; padding: 8px 0; }
.agenda-item { display: flex; align-items: flex-start; gap: 10px; padding: 9px 14px; border-bottom: 1px solid var(--border); }
.agenda-item:last-child { border-bottom: none; }
.agenda-icon { flex-shrink: 0; font-size: 16.8px; margin-top: 1px; }
.agenda-text { font-size: 15.7px; line-height: 1.5; color: var(--text-primary); }
.agenda-text--erledigt { color: var(--text-muted); text-decoration: line-through; }
.agenda-text--dringend { color: var(--danger); font-weight: 600; }
@media (min-width: 768px) { .agenda-content { max-width: 800px; margin: 0 auto; width: 100%; } }

/* --- KOM Geplant-View ---------------------------------------------------- */
.kom-geplant-view { flex: 1; overflow-y: auto; }
.kom-geplant-gruppe-titel { font-size: 12.3px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.6px; color: var(--text-muted); padding: 10px 16px 4px; border-bottom: 1px solid var(--border); background: var(--bg-secondary); }
.kom-geplant-item { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-bottom: 1px solid var(--border); background: var(--bg-card); }
.kom-geplant-item:hover { background: var(--bg-hover); }
.kom-geplant-link { display: flex; align-items: center; gap: 10px; text-decoration: none; color: inherit; flex: 1; min-width: 0; }
.kom-geplant-link:hover .kom-geplant-name { color: var(--primary); }
.kom-geplant-body { flex: 1; min-width: 0; }
.kom-geplant-row1 { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 2px; }
.kom-geplant-name { font-weight: 600; font-size: 14.6px; color: var(--text-primary); }
.kom-geplant-preview { font-size: 13.4px; color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 2px; }
.kom-geplant-datum { font-size: 12.3px; color: var(--text-muted); }
.kom-geplant-actions { display: flex; flex-direction: column; gap: 4px; flex-shrink: 0; }
.kom-geplant-loading { padding: 20px; text-align: center; color: var(--text-muted); font-size: 14.6px; }
.kom-geplant-empty { padding: 40px 16px; text-align: center; color: var(--text-muted); font-size: 14.6px; }

/* Verlauf Chat-Bubbles */
.verlauf-bubble {
  max-width: 85%;
  padding: 10px 14px;
  border-radius: 8px;
  margin-bottom: 4px;
  position: relative;
}
.verlauf-bubble--sl  { margin-left: auto; }
.verlauf-bubble--int { margin-right: auto; }
.verlauf-bubble--wa-out    { background: #DCF8C6; border-left: 3px solid #25D366; }
.verlauf-bubble--email-out { background: #DBEAFE; border-left: 3px solid #3B82F6; }
.verlauf-bubble--wa-in     { background: #DCF8C6; border: 1px solid #b7f0b7; border-left: 3px solid #25D366; }
.verlauf-bubble--email-in  { background: #DBEAFE; border: 1px solid #bfdbfe; border-left: 3px solid #3B82F6; }
.verlauf-bubble--eingang   { background: #F0FDF4; border: 1px solid #BBF7D0; border-left: 3px solid #22C55E; text-align: left; max-width: 85%; margin: 0 auto; }
.verlauf-bubble--system {
  background: none;
  text-align: center;
  color: var(--text-muted);
  font-size: 13.4px;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
  padding: 4px 8px;
}
.verlauf-bubble-meta {
  font-size: 12.3px;
  color: var(--text-muted);
  text-align: right;
  margin-top: 4px;
}
.verlauf-datum-trenner {
  text-align: center;
  font-size: 13.4px;
  color: var(--text-muted);
  margin: 12px 0;
  position: relative;
}
.verlauf-datum-trenner::before,
.verlauf-datum-trenner::after {
  content: '';
  position: absolute;
  top: 50%;
  width: 30%;
  height: 1px;
  background: var(--border);
}
.verlauf-datum-trenner::before { left: 0; }
.verlauf-datum-trenner::after  { right: 0; }

/* Mobile Typography  -  WA-Style */
@media (max-width: 767px) {
  body { font-size: 16.8px; }
  input, textarea, select { font-size: 17.9px; }
  .btn { font-size: 16.8px; padding: 10px 18px; }
  .btn-sm { font-size: 14.6px; padding: 7px 12px; }
  .card-title { font-size: 13.4px; }
  .lk-header-name { font-size: 20.2px; }
  .lk-header-meta { font-size: 14.6px; }
  .kom-lead-name { font-size: 16.8px; }
  .kom-lead-row2 span { font-size: 13.4px; }
  .verlauf-eintrag { padding-bottom: 16px; }
  .verlauf-rechts { padding: 10px 12px; }
  .verlauf-zeit { font-size: 13.4px; }
  .verlauf-absender { font-size: 12.3px; }
  .verlauf-aktion { font-size: 16.8px; font-weight: 500; }
  .verlauf-text { font-size: 17.9px; line-height: 1.6; }
  body.kom-page .main-content { overflow-y: auto; }
  .kom-compose { position: static; }
}

/* === BushinFlow Modal System === */
.bf-overlay{position:fixed;inset:0;background:rgba(15,23,41,0.5);z-index:999;display:none}
.bf-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:12px;box-shadow:0 8px 32px rgba(15,23,41,0.18);z-index:1000;min-width:300px;max-width:90vw;display:none;overflow:hidden}
.bf-modal::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:#FF6B35}
.bf-modal.danger::before{background:#E53E3E}
.bf-modal.success::before{background:#38A169}
.bf-modal-body{padding:20px 20px 20px 24px}
.bf-modal-title{font-weight:700;font-size:15px;color:#0F1729;margin-bottom:6px}
.bf-modal-text{font-size:13px;color:#4A5568;margin-bottom:16px;line-height:1.5}
.bf-modal-actions{display:flex;gap:8px;justify-content:flex-end}
.bf-btn-primary{background:#FF6B35;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer}
.bf-btn-secondary{background:#fff;color:#0F1729;border:1px solid #DDE3EE;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer}
.bf-btn-danger{background:#E53E3E;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer}
.bf-toast{position:fixed;bottom:24px;right:24px;background:#fff;border-radius:12px;box-shadow:0 8px 32px rgba(15,23,41,0.18);z-index:9999;min-width:260px;max-width:380px;overflow:hidden;display:none;animation:bfSlideIn 0.3s ease}
.bf-toast::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:#38A169}
.bf-toast.error::before{background:#E53E3E}
.bf-toast.warning::before{background:#D69E2E}
.bf-toast-body{padding:14px 16px 14px 20px;font-size:13px;color:#0F1729;font-weight:600}
@keyframes bfSlideIn{from{transform:translateX(120%);opacity:0}to{transform:translateX(0);opacity:1}}
@media(max-width:768px){.bf-toast{left:16px;right:16px;bottom:16px;min-width:unset}.bf-modal{min-width:unset;width:calc(100vw - 32px)}}

/* === BF Accordion === */
.bf-accordion{border:1px solid #DDE3EE;border-radius:8px;margin-bottom:8px;min-width:0}
.bf-accordion-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;cursor:pointer;background:#fff;font-size:12px;font-weight:700;color:#0F1729;letter-spacing:0.5px;user-select:none;min-height:36px}
.bf-accordion-header:hover{background:#F8F9FC}
.bf-accordion-arrow{font-size:10px;transition:transform 0.2s;color:#8896B3}
.bf-accordion-body{padding:0 14px;display:none}
.bf-accordion.open .bf-accordion-body{padding-bottom:12px;display:block;max-height:none;overflow:visible}
.bf-accordion.open .bf-accordion-arrow{transform:rotate(180deg)}
.bf-badge-count{background:#FF6B35;color:#fff;border-radius:10px;padding:1px 7px;font-size:10px;font-weight:700;margin-left:6px}

/* ==========================================================================
   NACHRICHTENMODUL PHASE B -- Badge-System + System-Events
   ========================================================================== */

/* Kanal-Badges -- nicht verhandelbar (CONTRACT 147-148) */
.badge-wa        { background: #22C55E; color: #fff; font-size: 11px; font-weight: 700; padding: 2px 7px; border-radius: 10px; display: inline-block; }
.badge-email     { background: #3B82F6; color: #fff; font-size: 11px; font-weight: 700; padding: 2px 7px; border-radius: 10px; display: inline-block; }
.badge-broadcast { background: #FF6B35; color: #fff; font-size: 11px; font-weight: 700; padding: 2px 7px; border-radius: 10px; display: inline-block; }
.badge-system    { background: #8896B3; color: #fff; font-size: 11px; font-weight: 700; padding: 2px 7px; border-radius: 10px; display: inline-block; }

/* System-Events als schmale graue Trennzeile (kein Chat-Bubble) */
.system-event-line {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 6px 0;
  color: #8896B3;
  font-size: 12px;
}
.system-event-line::before,
.system-event-line::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #DDE3EE;
}
.system-event-line .badge-system { flex-shrink: 0; }
