/* =========================================================================
   Sales-Platform — Cockpit Theme (Dark + Light)
   Default = Dark. Light-Mode ueber [data-theme="light"] auf <html>.
   Akzente (Cyan-Green, Violet) bleiben in beiden Themes identisch — nur
   Hintergrund/Panel/Border/Text-Stack wird invertiert.
   ========================================================================= */
:root {
  color-scheme: dark;

  /* Hintergrund-Stack */
  --bg:        #07080d;
  --bg-glow-1: rgba(139, 92, 246, 0.18);   /* violet glow oben links  */
  --bg-glow-2: rgba(244, 63, 94, 0.10);    /* pink/red glow oben rechts */
  --bg-glow-3: rgba(34, 211, 238, 0.05);   /* cyan unten              */

  --panel:        #11141d;
  --panel-2:      #161a26;
  --panel-3:      #1d2231;
  --panel-hi:     #232838;
  --border:       #232838;
  --border-strong:#323a52;
  --border-weak:  rgba(255,255,255,0.05);

  --text:        #e6e8ee;
  --text-muted:  #8b92a5;
  --text-dim:    #5b6478;

  /* Akzente — identisch in beiden Themes */
  --accent:        #00d99c;            /* primary call-green / cyan-green */
  --accent-soft:   rgba(0, 217, 156, 0.12);
  --accent-strong: #00b389;
  --accent-text:   #06140f;

  --violet:        #8b5cf6;
  --violet-soft:   rgba(139, 92, 246, 0.18);
  --violet-strong: #7c3aed;

  --green:        #10b981; --green-bg: rgba(16, 185, 129, 0.16);  --green-text: #6ee7b7;
  --red:          #f43f5e; --red-bg:   rgba(244, 63, 94, 0.16);   --red-text:   #fda4af;
  --amber:        #f59e0b; --amber-bg: rgba(245, 158, 11, 0.18);  --amber-text: #fcd34d;
  --blue:         #38bdf8; --blue-bg:  rgba(56, 189, 248, 0.16);  --blue-text:  #7dd3fc;
  --purple-bg:    rgba(139, 92, 246, 0.18); --purple-text: #c4b5fd;
  --slate-bg:     rgba(255, 255, 255, 0.04);

  --shadow:    0 1px 2px rgba(0,0,0,.5), 0 4px 10px rgba(0,0,0,.25);
  --shadow-lg: 0 12px 40px rgba(0,0,0,.55), 0 4px 8px rgba(0,0,0,.4);
  --glow-accent: 0 0 0 1px rgba(0, 217, 156, 0.3), 0 8px 32px rgba(0, 217, 156, 0.18);
  --glow-violet: 0 0 0 1px rgba(139, 92, 246, 0.3), 0 8px 32px rgba(139, 92, 246, 0.20);

  --nav-bg:      rgba(10, 12, 19, 0.7);
  --link-hover:  #bae6fd;
  --primary-bg:  var(--text);
  --primary-text:#0a0c12;
  --primary-bg-hover: #ffffff;

  --radius: 14px;
  --radius-sm: 10px;
}

/* ---- Light-Mode: gleiche Optik, helle Buehne -------------------------- */
:root[data-theme="light"] {
  color-scheme: light;

  --bg:        #f5f7fb;
  --bg-glow-1: rgba(139, 92, 246, 0.06);   /* violet glow oben links — sehr dezent */
  --bg-glow-2: rgba(244, 63, 94, 0.04);    /* pink/red oben rechts */
  --bg-glow-3: rgba(34, 211, 238, 0.05);   /* cyan unten */

  --panel:        #ffffff;
  --panel-2:      #f8fafc;
  --panel-3:      #f1f5f9;
  --panel-hi:     #e2e8f0;
  --border:       #e2e8f0;
  --border-strong:#cbd5e1;
  --border-weak:  rgba(15, 23, 42, 0.05);

  --text:        #0f172a;
  --text-muted:  #475569;
  --text-dim:    #94a3b8;

  --accent:        #00b389;
  --accent-soft:   rgba(0, 179, 137, 0.12);
  --accent-strong: #047857;
  --accent-text:   #ffffff;

  --green:        #059669; --green-bg: rgba(16, 185, 129, 0.12);  --green-text: #047857;
  --red:          #dc2626; --red-bg:   rgba(244, 63, 94, 0.10);   --red-text:   #b91c1c;
  --amber:        #d97706; --amber-bg: rgba(245, 158, 11, 0.14);  --amber-text: #92400e;
  --blue:         #2563eb; --blue-bg:  rgba(56, 189, 248, 0.14);  --blue-text:  #1e40af;
  --purple-bg:    rgba(139, 92, 246, 0.12); --purple-text: #6d28d9;
  --slate-bg:     rgba(15, 23, 42, 0.04);

  --shadow:    0 1px 2px rgba(15,23,42,.04), 0 1px 3px rgba(15,23,42,.06);
  --shadow-lg: 0 4px 6px rgba(15,23,42,.05), 0 10px 30px rgba(15,23,42,.10);
  --glow-accent: 0 0 0 1px rgba(0, 179, 137, 0.3), 0 8px 26px rgba(0, 179, 137, 0.18);
  --glow-violet: 0 0 0 1px rgba(139, 92, 246, 0.3), 0 8px 26px rgba(139, 92, 246, 0.18);

  --nav-bg:      rgba(255, 255, 255, 0.78);
  --link-hover:  #1e3a8a;
  --primary-bg:  #0f172a;
  --primary-text:#ffffff;
  --primary-bg-hover: #1e293b;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  background:
    radial-gradient(1200px 600px at 12% -10%, var(--bg-glow-1), transparent 60%),
    radial-gradient(1000px 500px at 100% 0%, var(--bg-glow-2), transparent 65%),
    radial-gradient(900px 700px at 90% 100%, var(--bg-glow-3), transparent 70%),
    var(--bg);
  background-attachment: fixed;
  color: var(--text);
  font-size: 14px; line-height: 1.55;
  min-height: 100vh;
}
a { color: var(--blue-text); text-decoration: none; }
a:hover { color: var(--link-hover); text-decoration: underline; }
::selection { background: var(--accent-soft); color: var(--text); }

.wrap { max-width: 1100px; margin: 0 auto; padding: 18px 16px 80px; }
.wrap-wide { max-width: 1480px; margin: 0 auto; padding: 14px 18px 60px; }

/* === Navigation =========================================================== */
.nav {
  background: var(--nav-bg);
  backdrop-filter: saturate(140%) blur(8px);
  -webkit-backdrop-filter: saturate(140%) blur(8px);
  border-bottom: 1px solid var(--border);
  padding: 10px 22px; display: flex; align-items: center; gap: 18px;
  position: sticky; top: 0; z-index: 40;
}
.nav .brand {
  font-weight: 700; letter-spacing: -0.01em; font-size: 15px;
  color: var(--text);
  display: flex; align-items: center; gap: 8px;
}
.nav .brand::before {
  content: ''; width: 8px; height: 8px; border-radius: 50%;
  background: var(--accent); box-shadow: 0 0 12px var(--accent);
}
.nav .links { display: flex; gap: 4px; flex: 1; }
.nav .links a {
  color: var(--text-muted); font-size: 13px; padding: 6px 12px;
  border-radius: 8px; transition: background .12s, color .12s;
}
.nav .links a:hover { background: var(--slate-bg); color: var(--text); text-decoration: none; }
.nav .links a.active { background: var(--panel-2); color: var(--text); border: 1px solid var(--border); }
.nav .user { font-size: 12px; color: var(--text-muted); display: flex; align-items: center; gap: 10px; }
.nav .user .who { color: var(--text); font-weight: 600; }

/* === Status-Pills ========================================================= */
.pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px; border-radius: 999px;
  font-size: 11px; font-weight: 600; line-height: 1.5;
  background: var(--slate-bg); color: var(--text-muted);
  border: 1px solid var(--border);
  white-space: nowrap;
}
.pill.s-uncalled    { background: var(--slate-bg); color: var(--text-muted); }
.pill.s-not_reached { background: var(--amber-bg); color: var(--amber-text); border-color: rgba(245, 158, 11, 0.3); }
.pill.s-calling     {
  background: var(--accent-soft); color: var(--accent);
  border-color: rgba(0, 217, 156, 0.4);
  animation: pulse-call 2s infinite;
}
.pill.s-calling::before {
  content: ''; width: 8px; height: 8px; border-radius: 50%;
  background: var(--accent); box-shadow: 0 0 8px var(--accent);
  animation: pulse-call-dot 1.4s infinite;
}
.pill.s-callback    { background: var(--purple-bg); color: var(--purple-text); border-color: rgba(139, 92, 246, 0.3); }
.pill.s-considering { background: rgba(34, 211, 238, 0.16); color: #67e8f9; border-color: rgba(34, 211, 238, 0.3); }
.pill.s-wants_site  { background: var(--green-bg); color: var(--green-text); border-color: rgba(16, 185, 129, 0.3); }
.pill.s-won         { background: rgba(16, 185, 129, 0.25); color: #6ee7b7; border-color: rgba(16, 185, 129, 0.5); }
.pill.s-lost        { background: var(--red-bg); color: var(--red-text); border-color: rgba(244, 63, 94, 0.3); }
@keyframes pulse-call {
  0%, 100% { box-shadow: 0 0 0 0 rgba(0, 217, 156, 0.4); }
  50%      { box-shadow: 0 0 0 6px rgba(0, 217, 156, 0); }
}
@keyframes pulse-call-dot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.6; transform: scale(0.85); }
}

/* === Quality Badge ======================================================== */
.quality-badge {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 28px; height: 24px; padding: 0 8px; border-radius: 6px;
  font-size: 12px; font-weight: 700; color: #06140f;
  flex-shrink: 0; cursor: help;
  letter-spacing: 0.02em;
}
.quality-Aplus, .quality-A\+ {
  background: linear-gradient(135deg, #34d399, #00d99c);
  box-shadow: 0 0 0 1px rgba(0, 217, 156, 0.4), 0 4px 12px rgba(0, 217, 156, 0.25);
}
.quality-A { background: var(--green); color: #042519; }
.quality-B { background: var(--amber); color: #2a1c00; }
.quality-C { background: var(--text-dim); color: #0c0e14; }

/* === Buttons ============================================================== */
.btn {
  appearance: none; border: 1px solid var(--border-strong);
  background: var(--panel-2); color: var(--text);
  padding: 8px 14px; border-radius: 8px; font-size: 13px; font-weight: 600;
  cursor: pointer; transition: all .12s;
  display: inline-flex; align-items: center; gap: 6px;
  font-family: inherit;
}
.btn:hover { background: var(--panel-3); border-color: var(--text-dim); }
.btn.primary {
  background: var(--primary-bg); color: var(--primary-text); border-color: var(--primary-bg);
}
.btn.primary:hover { background: var(--primary-bg-hover); border-color: var(--primary-bg-hover); }
.btn.green {
  background: var(--accent); color: var(--accent-text); border-color: var(--accent);
  box-shadow: 0 4px 14px rgba(0, 217, 156, 0.2);
}
.btn.green:hover { background: var(--accent-strong); border-color: var(--accent-strong); transform: translateY(-1px); }
.btn.violet {
  background: var(--violet-strong); color: #fff; border-color: var(--violet-strong);
  box-shadow: 0 4px 14px rgba(139, 92, 246, 0.25);
}
.btn.violet:hover { background: #6d28d9; transform: translateY(-1px); }
.btn.danger {
  background: var(--red); color: #fff; border-color: var(--red);
  box-shadow: 0 4px 14px rgba(244, 63, 94, 0.2);
}
.btn.danger:hover { background: #e11d48; transform: translateY(-1px); }
.btn.ghost {
  background: transparent; border-color: var(--border);
}
.btn.ghost:hover { background: var(--slate-bg); }
.btn.small { padding: 5px 10px; font-size: 12px; }
.btn:disabled { opacity: .5; cursor: not-allowed; transform: none !important; }

/* === Forms ================================================================ */
.field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }
.field label { font-size: 11px; color: var(--text-muted); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.field input, .field select, .field textarea, input[type="text"], input[type="email"], input[type="password"], input[type="datetime-local"], select, textarea {
  padding: 9px 12px; border: 1px solid var(--border); border-radius: 8px;
  background: var(--panel); font-size: 13px; color: var(--text);
  font-family: inherit;
  transition: border-color .12s, box-shadow .12s, background .12s;
}
.field textarea, textarea { min-height: 80px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus,
input:focus, select:focus, textarea:focus {
  outline: none; border-color: var(--accent); background: var(--panel-2);
  box-shadow: 0 0 0 3px rgba(0, 217, 156, 0.15);
}
.field input::placeholder, .field textarea::placeholder, input::placeholder, textarea::placeholder {
  color: var(--text-dim);
}
select option { background: var(--panel); color: var(--text); }

/* === Cards / Panels ======================================================= */
.panel {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 18px 20px; margin-bottom: 14px;
}
.panel h2 { margin: 0 0 12px; font-size: 16px; letter-spacing: -.01em; color: var(--text); }
.panel h3 { margin: 0 0 8px; font-size: 14px; letter-spacing: -.005em; color: var(--text); font-weight: 600; }

/* === Stat-Pills (Dashboard-Header) ======================================== */
.stats { display: flex; flex-wrap: wrap; gap: 6px; }
.stat {
  display: inline-flex; align-items: baseline; gap: 5px;
  padding: 5px 10px; border-radius: 999px;
  background: var(--slate-bg); border: 1px solid var(--border);
  font-size: 12px; color: var(--text-muted);
}
.stat b { color: var(--text); font-weight: 700; }
.stat.calling     { background: var(--accent-soft); color: var(--accent); border-color: rgba(0, 217, 156, 0.3); }
.stat.calling b   { color: var(--accent); }
.stat.wants_site  { background: var(--green-bg); color: var(--green-text); border-color: rgba(16, 185, 129, 0.3); }
.stat.wants_site b{ color: var(--green-text); }
.stat.won         { background: rgba(16, 185, 129, 0.25); color: #6ee7b7; border-color: rgba(16, 185, 129, 0.5); }
.stat.won b       { color: #6ee7b7; }
.stat.lost        { background: var(--red-bg); color: var(--red-text); border-color: rgba(244, 63, 94, 0.3); }
.stat.lost b      { color: var(--red-text); }

/* === Lead-Liste =========================================================== */
.lead-row {
  display: grid;
  grid-template-columns: 24px 130px 1fr 220px 200px;
  gap: 14px; align-items: center;
  padding: 14px 16px;
  background: var(--panel); border: 1px solid var(--border);
  border-radius: var(--radius-sm); margin-bottom: 8px;
  border-left: 3px solid var(--border-strong);
  transition: border-color .15s, box-shadow .15s, transform .12s, background .12s;
  cursor: pointer;
}
.lead-row.no-quality { grid-template-columns: 24px 130px 1fr 220px 200px; }
.lead-row.no-checkbox { grid-template-columns: 130px 1fr 220px 200px; }
.lead-row.no-checkbox.no-quality { grid-template-columns: 130px 1fr 220px 200px; }
.lead-row.selected { background: var(--accent-soft); border-color: var(--accent); }
.lead-row:hover { border-color: var(--accent); background: var(--panel-2); transform: translateY(-1px); box-shadow: var(--shadow); }
.lead-row.s-uncalled    { border-left-color: var(--border-strong); }
.lead-row.s-not_reached { border-left-color: var(--amber); }
.lead-row.s-calling     { border-left-color: var(--accent); }
.lead-row.s-callback    { border-left-color: var(--violet); }
.lead-row.s-considering { border-left-color: #22d3ee; }
.lead-row.s-wants_site  { border-left-color: var(--green); }
.lead-row.s-won         { border-left-color: var(--accent); }
.lead-row.s-lost        { border-left-color: var(--red); }
.lead-row .biz { font-weight: 600; font-size: 14px; color: var(--text); }
.lead-row .meta { font-size: 12px; color: var(--text-muted); margin-top: 2px; }
.lead-row .contact { font-size: 12px; color: var(--text-muted); }
.lead-row .contact a { color: var(--text); font-weight: 600; }
.lead-row .contact a:hover { color: var(--accent); }
.lead-row .assignment { display: flex; align-items: center; }
.lead-row .checkbox-cell { display: flex; align-items: center; }
.lead-row .checkbox-cell input { width: 18px; height: 18px; cursor: pointer; accent-color: var(--accent); }

/* === Tabs (Admin) ========================================================= */
.tabs {
  display: flex; gap: 4px; padding: 4px;
  background: var(--panel); border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  margin-bottom: 14px; flex-wrap: wrap;
}
.tabs button {
  appearance: none; border: 0; background: transparent;
  padding: 8px 14px; border-radius: 7px; cursor: pointer;
  font-size: 13px; color: var(--text-muted); font-weight: 500;
  flex: 1 1 auto; font-family: inherit;
  transition: background .12s, color .12s;
}
.tabs button.active { background: var(--panel-3); color: var(--text); }
.tabs button:hover:not(.active) { color: var(--text); background: var(--slate-bg); }

.tab-content { display: none; }
.tab-content.active { display: block; }

/* === Modal ================================================================ */
.modal-backdrop {
  position: fixed; inset: 0;
  background: rgba(7, 8, 13, 0.78);
  backdrop-filter: blur(4px);
  display: none; align-items: center; justify-content: center;
  padding: 24px; z-index: 1000;
  animation: modalFadeIn .15s ease-out;
}
@keyframes modalFadeIn { from { opacity: 0; } to { opacity: 1; } }
.modal {
  width: 100%; max-width: 540px; max-height: 90vh; overflow-y: auto;
  background: var(--panel-2); border-radius: var(--radius); padding: 22px;
  border: 1px solid var(--border-strong);
  box-shadow: var(--shadow-lg);
  color: var(--text);
}
.modal h2 { margin: 0; font-size: 18px; letter-spacing: -.01em; }

/* === Toast ================================================================ */
.toast {
  position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(8px);
  background: var(--panel-3); color: var(--text);
  border: 1px solid var(--border-strong);
  padding: 12px 20px; border-radius: 10px; font-size: 13px; font-weight: 500;
  box-shadow: var(--shadow-lg); opacity: 0; pointer-events: none;
  transition: opacity .2s, transform .2s; z-index: 1100;
  max-width: 90vw; text-align: center;
}
.toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* === Call-Outcome-Modal-Grid ============================================== */
.call-outcome-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 14px;
}
@media (max-width: 480px) {
  .call-outcome-grid { grid-template-columns: 1fr; }
}
.call-outcome-btn {
  display: flex; flex-direction: column; align-items: flex-start; gap: 4px;
  padding: 14px 16px; border: 1px solid var(--border-strong); border-radius: 10px;
  background: var(--panel); cursor: pointer;
  text-align: left; transition: all .12s; font-family: inherit;
  color: var(--text);
}
.call-outcome-btn:hover {
  border-color: var(--accent);
  transform: translateY(-1px);
  box-shadow: var(--shadow);
  background: var(--panel-3);
}
.call-outcome-btn .co-icon { font-size: 22px; }
.call-outcome-btn .co-title { font-weight: 700; font-size: 14px; color: var(--text); }
.call-outcome-btn .co-sub { color: var(--text-muted); font-size: 12px; }
.call-outcome-btn[data-status="not_reached"] { border-color: rgba(245, 158, 11, 0.35); }
.call-outcome-btn[data-status="not_reached"]:hover { border-color: var(--amber); box-shadow: 0 0 0 1px var(--amber); }
.call-outcome-btn[data-status="callback"]    { border-color: rgba(139, 92, 246, 0.35); }
.call-outcome-btn[data-status="callback"]:hover { border-color: var(--violet); box-shadow: 0 0 0 1px var(--violet); }
.call-outcome-btn[data-status="considering"] { border-color: rgba(34, 211, 238, 0.35); }
.call-outcome-btn[data-status="considering"]:hover { border-color: #22d3ee; box-shadow: 0 0 0 1px #22d3ee; }
.call-outcome-btn[data-status="wants_site"]  { border-color: rgba(16, 185, 129, 0.35); }
.call-outcome-btn[data-status="wants_site"]:hover { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.call-outcome-btn[data-status="lost"]        { border-color: rgba(244, 63, 94, 0.35); }
.call-outcome-btn[data-status="lost"]:hover { border-color: var(--red); box-shadow: 0 0 0 1px var(--red); }
.call-outcome-btn[data-status="keep"]        { border-style: dashed; }
.call-outcome-btn[data-status="won"] { border-color: rgba(16, 185, 129, 0.5); }
.call-outcome-btn[data-status="won"]:hover { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }

/* === Warning-Box ========================================================== */
.warning-box {
  padding: 10px 14px; background: var(--amber-bg); color: var(--amber-text);
  border: 1px solid rgba(245, 158, 11, 0.3);
  border-radius: 8px; margin-bottom: 12px; font-size: 13px; font-weight: 500;
}

/* === Activity-Log ========================================================= */
.activity-item {
  padding: 10px 12px; border-left: 3px solid var(--border-strong);
  background: var(--panel-2); border-radius: 0 8px 8px 0;
  margin-bottom: 6px; font-size: 13px;
}
.activity-item .when { color: var(--text-dim); font-size: 11px; }
.activity-item .who  { color: var(--text-muted); font-size: 11px; font-weight: 600; }
.activity-item.t-status_change { border-left-color: var(--accent); }
.activity-item.t-note          { border-left-color: var(--amber); }
.activity-item.t-mail_sent     { border-left-color: var(--green); }
.activity-item.t-assigned      { border-left-color: var(--violet); }

/* === Login ================================================================ */
.login-wrap {
  min-height: 100vh; display: flex; align-items: center; justify-content: center;
  padding: 20px;
}
.login-card {
  width: 100%; max-width: 380px;
  background: var(--panel-2); border: 1px solid var(--border-strong);
  border-radius: var(--radius); box-shadow: var(--shadow-lg);
  padding: 32px 28px;
}
.login-card h1 {
  margin: 0 0 4px; font-size: 22px;
  display: flex; align-items: center; gap: 10px;
}
.login-card h1::before {
  content: ''; width: 10px; height: 10px; border-radius: 50%;
  background: var(--accent); box-shadow: 0 0 14px var(--accent);
}
.login-card .sub { color: var(--text-muted); font-size: 13px; margin-bottom: 24px; }
.login-card .err { color: var(--red-text); background: var(--red-bg); border: 1px solid rgba(244, 63, 94, 0.3); padding: 8px 12px; border-radius: 8px; font-size: 13px; margin-bottom: 12px; display: none; }

/* === Tabellen (Admin) ===================================================== */
table.data {
  width: 100%; border-collapse: collapse;
  background: var(--panel); border-radius: var(--radius-sm); overflow: hidden;
  border: 1px solid var(--border);
}
table.data th, table.data td {
  padding: 10px 12px; text-align: left; font-size: 13px;
  border-bottom: 1px solid var(--border);
  color: var(--text);
}
table.data th { background: var(--panel-2); font-weight: 600; color: var(--text-muted); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }
table.data tr:last-child td { border-bottom: 0; }
table.data tr.row-selected { background: var(--accent-soft); }
table.data tr:hover td { background: var(--panel-2); }

/* === Bulk-Action-Bar ====================================================== */
.bulk-bar {
  position: sticky; top: 60px; z-index: 50;
  display: none; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 12px 16px; margin-bottom: 10px;
  background: var(--panel-3); color: var(--text);
  border: 1px solid var(--accent);
  border-radius: var(--radius-sm); box-shadow: var(--glow-accent);
  font-size: 13px;
}
.bulk-bar.show { display: flex; }
.bulk-bar .count { font-weight: 700; color: var(--accent); }
.bulk-bar select {
  padding: 6px 10px; border-radius: 6px; border: 1px solid var(--border);
  background: var(--panel); color: var(--text); font-size: 13px;
}

/* === Quality-Cluster (Admin) ============================================== */
.quality-cluster { margin-bottom: 18px; }
.quality-cluster-header {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 14px; margin-bottom: 8px;
  background: var(--panel); border: 1px solid var(--border); border-radius: 10px;
  box-shadow: var(--shadow);
  cursor: pointer; user-select: none;
}
.quality-cluster-header:hover { background: var(--panel-2); }
.quality-cluster-header .qch-tier {
  font-size: 16px; font-weight: 700; color: #06140f;
  padding: 4px 10px; border-radius: 8px; min-width: 36px; text-align: center;
}
.quality-cluster-header .qch-label { font-weight: 600; font-size: 14px; color: var(--text); }
.quality-cluster-header .qch-count {
  margin-left: auto; color: var(--text-muted); font-size: 12px;
}
.quality-cluster-header .qch-toggle { color: var(--text-muted); font-size: 14px; transition: transform .15s; }
.quality-cluster.collapsed .qch-toggle { transform: rotate(-90deg); }
.quality-cluster.collapsed .quality-cluster-body { display: none; }
.quality-cluster .qch-Aplus { background: linear-gradient(135deg, #34d399, #00d99c); }
.quality-cluster .qch-A     { background: var(--green); }
.quality-cluster .qch-B     { background: var(--amber); }
.quality-cluster .qch-C     { background: var(--text-dim); color: var(--text); }

/* =========================================================================
   COCKPIT-LAYOUT (Lead-Detail Call-Cockpit)
   ========================================================================= */
.cockpit-wrap {
  max-width: 1500px; margin: 0 auto; padding: 12px 18px 60px;
}

/* --- Top-Call-Bar (zeigt Anruf-Status, Timer, Aktionen) ------------------- */
.call-bar {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px; align-items: center;
  padding: 12px 18px;
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-bottom: 14px;
  box-shadow: var(--shadow);
  transition: all .2s;
}
.call-bar.is-calling {
  border-color: var(--accent);
  background:
    linear-gradient(180deg, rgba(0, 217, 156, 0.06), rgba(0, 217, 156, 0.01)),
    var(--panel-2);
  box-shadow: var(--glow-accent);
}
.call-bar-left {
  display: flex; align-items: center; gap: 14px; min-width: 0; flex-wrap: wrap;
}
.call-bar-state {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 700; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .04em;
  white-space: nowrap;
}
.call-bar-state .state-dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--text-dim);
}
.call-bar.is-calling .call-bar-state { color: var(--accent); }
.call-bar.is-calling .call-bar-state .state-dot {
  background: var(--accent);
  box-shadow: 0 0 12px var(--accent);
  animation: pulse-call-dot 1.2s infinite;
}
.call-bar-arrow { color: var(--text-dim); font-size: 16px; }
.call-bar-target {
  font-size: 14px; color: var(--text); font-weight: 600;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  min-width: 0;
}
.call-bar-target b { font-weight: 700; }
.call-bar-target .call-bar-num {
  color: var(--accent); font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.call-bar-right {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.call-bar-timer {
  font-size: 22px; font-weight: 700; letter-spacing: .04em;
  font-variant-numeric: tabular-nums;
  color: var(--accent);
  padding: 0 14px;
  min-width: 76px; text-align: right;
}
.call-bar-timer.is-idle { color: var(--text-dim); }
.btn-end-call {
  background: var(--red); color: #fff; border-color: var(--red);
  padding: 8px 14px; border-radius: 8px; font-weight: 700;
  border: 1px solid var(--red);
  cursor: pointer; font-family: inherit; font-size: 13px;
  display: inline-flex; align-items: center; gap: 6px;
  transition: all .12s;
  box-shadow: 0 4px 14px rgba(244, 63, 94, 0.25);
}
.btn-end-call::before {
  content: ''; width: 8px; height: 8px; border-radius: 50%; background: #fff;
}
.btn-end-call:hover { background: #e11d48; transform: translateY(-1px); }
.btn-end-call:disabled { opacity: 0.4; box-shadow: none; cursor: not-allowed; }

/* --- 3-Spalten-Cockpit-Grid ---------------------------------------------- */
.cockpit-grid {
  display: grid;
  grid-template-columns: 320px 1fr 340px;
  gap: 16px;
  align-items: start;
}
.cockpit-col { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
@media (max-width: 1280px) {
  .cockpit-grid { grid-template-columns: 280px 1fr; }
  .cockpit-col-right { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
  .cockpit-grid { grid-template-columns: 1fr; }
  .cockpit-col-right { grid-column: 1; }
}

/* --- Card-Basis fuer Cockpit-Sections ------------------------------------ */
.card {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px 18px;
  box-shadow: var(--shadow);
}
.card.tight { padding: 12px 14px; }
.card-title {
  font-size: 11px; font-weight: 700; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .08em;
  margin: 0 0 10px;
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
}

/* === LEFT SIDEBAR: Lead-Card ============================================= */
.lead-card {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 18px 16px;
  box-shadow: var(--shadow);
}
.lead-card .lc-name {
  font-size: 22px; font-weight: 700; letter-spacing: -.01em;
  color: var(--text); margin: 0 0 4px;
  line-height: 1.2;
}
.lead-card .lc-trade {
  font-size: 12px; color: var(--text-muted); margin-bottom: 12px;
}
.lead-card .lc-pills {
  display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px;
}
.lead-card .btn-bigcall {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  width: 100%; padding: 14px 16px;
  background: var(--accent); color: var(--accent-text);
  border: 1px solid var(--accent);
  border-radius: 12px;
  font-size: 17px; font-weight: 800; letter-spacing: 0.01em;
  font-variant-numeric: tabular-nums;
  text-decoration: none !important;
  box-shadow: 0 6px 20px rgba(0, 217, 156, 0.25), 0 0 0 1px rgba(0, 217, 156, 0.4);
  transition: transform .12s, box-shadow .12s, filter .12s;
  cursor: pointer; font-family: inherit;
}
.lead-card .btn-bigcall:hover {
  transform: translateY(-2px); filter: brightness(1.05);
  box-shadow: 0 10px 28px rgba(0, 217, 156, 0.35), 0 0 0 1px rgba(0, 217, 156, 0.6);
  text-decoration: none !important;
}
.lead-card .btn-bigcall .bc-icon { font-size: 18px; }
.lead-card .btn-bigcall.disabled,
.lead-card .btn-bigcall:not([href]) {
  background: var(--panel-3); color: var(--text-muted); border-color: var(--border);
  box-shadow: none; cursor: not-allowed;
}
.lead-card .btn-bigcall-hint {
  text-align: center; font-size: 11px; color: var(--text-dim);
  margin: 6px 0 0;
}

.lc-divider { height: 1px; background: var(--border); margin: 14px -18px; }

.lc-field {
  display: grid; grid-template-columns: auto 1fr auto; gap: 8px 12px;
  padding: 8px 0;
  align-items: start;
}
.lc-field + .lc-field { border-top: 1px dashed var(--border); }
.lc-field .lcf-icon {
  width: 22px; height: 22px; display: flex; align-items: center; justify-content: center;
  font-size: 14px; color: var(--text-dim);
  margin-top: 1px;
}
.lc-field .lcf-body { min-width: 0; }
.lc-field .lcf-label {
  font-size: 10px; font-weight: 700; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .08em; margin-bottom: 3px;
}
.lc-field .lcf-value {
  font-size: 14px; color: var(--text); font-weight: 600;
  word-break: break-word; line-height: 1.35;
}
.lc-field .lcf-value a {
  color: var(--text); border-bottom: 1px dashed var(--text-dim);
}
.lc-field .lcf-value a:hover { color: var(--accent); border-bottom-color: var(--accent); }
.lc-field .lcf-value.muted-empty {
  color: var(--text-dim); font-style: italic; font-weight: 500;
  cursor: pointer; border-bottom: 1px dashed var(--text-dim);
  display: inline;
}
.lc-field .lcf-value.muted-empty:hover { color: var(--accent); border-bottom-color: var(--accent); }
.lc-field .lcf-multiline { white-space: pre-line; }
.lc-field .lcf-edit {
  background: transparent; border: 1px solid transparent;
  border-radius: 6px; font-size: 12px; cursor: pointer;
  color: var(--text-dim); padding: 2px 6px;
  opacity: 0; transition: opacity .12s;
  align-self: start; margin-top: 2px;
  font-family: inherit;
}
.lc-field:hover .lcf-edit { opacity: 1; }
.lc-field .lcf-edit:hover {
  color: var(--text); background: var(--slate-bg); border-color: var(--border);
}

/* Status-Selector innerhalb des lead-card */
.lc-status-row {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  margin-bottom: 8px;
}
.lc-status-row select#status-select {
  flex: 1; min-width: 140px;
  padding: 8px 10px; border: 1px solid var(--border); border-radius: 8px;
  font-size: 13px; font-weight: 600;
  background: var(--panel-2); color: var(--text);
}
.lc-status-row .lc-assign {
  width: 100%; margin-top: 6px;
  font-size: 11px; color: var(--text-muted);
}
.lc-status-row .lc-assign select {
  margin-left: 6px; padding: 3px 6px;
  background: var(--panel-2); color: var(--text);
  border: 1px solid var(--border); border-radius: 6px;
  font-size: 11px;
}

/* === CENTER: Outcome-Bar (immer sichtbar) ================================ */
.outcome-bar {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 16px;
  box-shadow: var(--shadow);
}
.outcome-bar-head {
  text-align: center; font-size: 13px; font-weight: 600;
  color: var(--text); margin-bottom: 10px;
  letter-spacing: -0.01em;
}
.outcome-bar-head .ob-sub {
  display: block; font-size: 11px; font-weight: 500;
  color: var(--text-muted); margin-top: 2px;
}
.outcome-grid-inline {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}
@media (max-width: 1100px) { .outcome-grid-inline { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px)  { .outcome-grid-inline { grid-template-columns: repeat(2, 1fr); } }
.outcome-tile {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 4px; padding: 12px 10px;
  background: var(--panel-2);
  border: 1px solid var(--border-strong);
  border-radius: 12px;
  cursor: pointer; transition: all .12s; font-family: inherit;
  text-align: center;
  color: var(--text);
}
.outcome-tile:hover { transform: translateY(-2px); box-shadow: var(--shadow); background: var(--panel-3); }
.outcome-tile .ot-icon {
  font-size: 22px;
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  margin-bottom: 4px;
}
.outcome-tile .ot-title { font-size: 13px; font-weight: 700; }
.outcome-tile .ot-sub { font-size: 11px; color: var(--text-muted); }
.outcome-tile.active { border-color: var(--accent); background: var(--accent-soft); }
.outcome-tile[data-status="not_reached"]:hover { border-color: var(--amber); }
.outcome-tile[data-status="not_reached"] .ot-icon { background: rgba(245, 158, 11, 0.15); color: var(--amber-text); }
.outcome-tile[data-status="callback"]:hover { border-color: var(--violet); }
.outcome-tile[data-status="callback"] .ot-icon { background: rgba(139, 92, 246, 0.15); color: var(--purple-text); }
.outcome-tile[data-status="considering"]:hover { border-color: #22d3ee; }
.outcome-tile[data-status="considering"] .ot-icon { background: rgba(34, 211, 238, 0.15); color: #67e8f9; }
.outcome-tile[data-status="wants_site"]:hover { border-color: var(--accent); }
.outcome-tile[data-status="wants_site"] .ot-icon { background: var(--accent-soft); color: var(--accent); position: relative; }
.outcome-tile[data-status="wants_site"] .ot-icon::after {
  content: ''; position: absolute; inset: -3px; border-radius: 50%;
  border: 2px solid rgba(0, 217, 156, 0.4);
  animation: pulse-ring 1.6s infinite;
}
@keyframes pulse-ring {
  0% { transform: scale(0.8); opacity: 0.8; }
  100% { transform: scale(1.4); opacity: 0; }
}
.outcome-tile[data-status="lost"]:hover { border-color: var(--red); }
.outcome-tile[data-status="lost"] .ot-icon { background: var(--red-bg); color: var(--red-text); }

/* === CENTER: Briefing-Card =============================================== */
.briefing-card .briefing-head {
  margin-bottom: 14px;
}
.briefing-card .briefing-head h2 {
  margin: 0; font-size: 18px; letter-spacing: -.01em; color: var(--text);
}
.briefing-card .briefing-head .briefing-sub {
  margin-top: 2px; font-size: 13px; color: var(--text-muted);
}

.briefing-section {
  padding: 12px 0;
}
.briefing-section + .briefing-section { border-top: 1px solid var(--border); }
.briefing-section h3 {
  margin: 0 0 8px;
  font-size: 11px; font-weight: 700; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .08em;
}
.briefing-section p, .briefing-section .bs-text {
  margin: 0; color: var(--text); font-size: 14px; line-height: 1.6;
}

/* Numbered hooks (1, 2, 3) */
.hooks-list { display: flex; flex-direction: column; gap: 8px; }
.hook-row {
  display: grid; grid-template-columns: 32px 1fr; gap: 12px;
  padding: 12px 14px;
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 12px;
  align-items: start;
}
.hook-row .hook-num {
  width: 28px; height: 28px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(56, 189, 248, 0.16);
  color: var(--blue-text);
  border-radius: 8px;
  font-weight: 700; font-size: 14px;
}
.hook-row .hook-text {
  color: var(--text); font-size: 14px; line-height: 1.55;
}
.hook-row .hook-highlight {
  background: rgba(56, 189, 248, 0.18);
  color: var(--blue-text);
  padding: 0 4px; border-radius: 4px;
  font-weight: 600;
}

/* Schwächen + Vorschläge: 2-col side-by-side */
.briefing-pair {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
}
@media (max-width: 700px) { .briefing-pair { grid-template-columns: 1fr; } }
.briefing-pair-card {
  padding: 12px 14px;
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 12px;
}
.briefing-pair-card.weaknesses { border-color: rgba(244, 63, 94, 0.25); }
.briefing-pair-card.improvements { border-color: rgba(16, 185, 129, 0.25); }
.briefing-pair-card h3 { margin-top: 0; }
.briefing-pair-card .bp-icon { margin-right: 6px; }
.briefing-pair-card.weaknesses .bp-icon { color: var(--red-text); }
.briefing-pair-card.improvements .bp-icon { color: var(--accent); }
.briefing-pair-card ul { margin: 0; padding-left: 18px; }
.briefing-pair-card ul li {
  font-size: 13px; line-height: 1.55;
  color: var(--text); margin-bottom: 4px;
}
.briefing-pair-card.weaknesses ul li::marker { color: var(--red); }
.briefing-pair-card.improvements ul li::marker { color: var(--accent); }

/* === Step-Strip (im Center, unter Briefing) =============================== */
.step-strip {
  display: flex; gap: 6px; padding: 5px;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 12px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.step-strip .step {
  appearance: none; border: 0; background: transparent;
  display: flex; align-items: center; gap: 8px;
  padding: 9px 14px; border-radius: 8px; cursor: pointer;
  font-size: 13px; color: var(--text-muted); font-weight: 500;
  flex: 1 1 0; min-width: 140px; font-family: inherit;
  transition: background .12s, color .12s;
}
.step-strip .step:hover:not(.locked) { background: var(--slate-bg); color: var(--text); }
.step-strip .step .num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--panel-3); border: 1.5px solid var(--border-strong);
  font-weight: 700; font-size: 11px;
  flex-shrink: 0; color: var(--text-muted);
}
.step-strip .step .label { flex: 1; text-align: left; }
.step-strip .step .state { font-size: 13px; }
.step-strip .step.active { background: var(--panel-2); color: var(--text); border: 1px solid var(--border-strong); }
.step-strip .step.active .num { background: var(--accent); border-color: var(--accent); color: var(--accent-text); }
.step-strip .step.done .num { background: var(--green); border-color: var(--green); color: #042519; }
.step-strip .step.done { color: var(--text); }
.step-strip .step.locked { opacity: 0.55; cursor: not-allowed; }
.step-strip .step.locked:hover { background: transparent; }

.step-content { display: none; }
.step-content.active { display: block; }

/* === RIGHT SIDEBAR: Vorbereitete Webseite ================================ */
.sidebar-card .sc-pill {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px; font-weight: 700;
  color: var(--accent);
  margin-bottom: 6px;
  text-transform: uppercase; letter-spacing: .06em;
}
.sidebar-card .sc-pill::before {
  content: ''; width: 8px; height: 8px; border-radius: 50%;
  background: var(--accent); box-shadow: 0 0 8px var(--accent);
}
.sidebar-card .sc-url {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px; color: var(--text);
  word-break: break-all;
  background: var(--panel-2);
  padding: 8px 10px; border-radius: 8px;
  border: 1px solid var(--border);
  margin-bottom: 10px;
}
.sidebar-card .sc-actions {
  display: flex; gap: 6px;
}
.sidebar-card .sc-actions .btn { flex: 1; justify-content: center; }
.sidebar-card .sc-empty {
  font-size: 13px; color: var(--text-muted); margin-bottom: 10px;
}
.sidebar-card .sc-gen-status {
  font-size: 12px; color: var(--text-muted); margin-top: 8px;
}

/* Live-Notiz */
.live-note-textarea {
  width: 100%; box-sizing: border-box;
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 13px; color: var(--text);
  min-height: 110px; resize: vertical;
  font-family: inherit;
}
.live-note-textarea:focus {
  outline: none; border-color: var(--violet);
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.18);
}
.btn-save-note {
  width: 100%; margin-top: 10px;
  padding: 11px 14px; border-radius: 10px;
  background: var(--violet-strong); color: #fff;
  border: 1px solid var(--violet-strong);
  font-weight: 700; font-size: 13px;
  cursor: pointer; font-family: inherit;
  transition: transform .12s, box-shadow .12s;
  box-shadow: 0 4px 14px rgba(139, 92, 246, 0.25);
}
.btn-save-note:hover { transform: translateY(-1px); background: #6d28d9; }

/* Lead-Verlauf (rechte Sidebar) */
.history-list {
  display: flex; flex-direction: column; gap: 0;
  max-height: 360px; overflow-y: auto;
  padding-right: 2px;
}
.history-list::-webkit-scrollbar { width: 6px; }
.history-list::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 4px; }
.history-row {
  display: grid; grid-template-columns: 14px 1fr; gap: 10px;
  padding: 10px 0;
  border-bottom: 1px dashed var(--border);
  align-items: start;
}
.history-row:last-child { border-bottom: 0; }
.history-row .h-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--text-dim); margin-top: 6px;
  position: relative;
}
.history-row.t-status_change .h-dot { background: var(--accent); box-shadow: 0 0 8px rgba(0, 217, 156, 0.5); }
.history-row.t-note          .h-dot { background: var(--amber); }
.history-row.t-mail_sent     .h-dot { background: var(--green); }
.history-row.t-call_logged   .h-dot { background: var(--blue); }
.history-row.t-assigned      .h-dot { background: var(--violet); }
.history-row.t-preview_set,
.history-row.t-loom_set,
.history-row.t-followup_set  .h-dot { background: var(--purple-text); }
.history-row .h-body { min-width: 0; }
.history-row .h-title {
  font-size: 13px; font-weight: 600; color: var(--text); line-height: 1.35;
}
.history-row .h-meta {
  font-size: 11px; color: var(--text-muted); margin-top: 2px;
}
.history-quality {
  margin-top: 12px; padding-top: 12px;
  border-top: 1px solid var(--border);
  display: flex; align-items: center; gap: 8px;
  font-size: 12px;
  color: var(--text-muted);
}
.history-quality b { color: var(--text); }

/* === Followup-Banner ====================================================== */
.followup-banner {
  display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between;
  padding: 12px 16px; margin-bottom: 14px;
  border: 1px solid var(--amber);
  background: var(--amber-bg);
  color: var(--amber-text);
  border-radius: 12px;
}
.followup-banner.is-overdue {
  border-color: var(--red); background: var(--red-bg); color: var(--red-text);
}
.followup-banner.is-future {
  border-color: var(--blue); background: var(--blue-bg); color: var(--blue-text);
}
.followup-banner b { color: inherit; }

/* === Stepper (legacy) ==================================================== */
.stepper {
  display: flex; gap: 6px; padding: 6px;
  background: var(--panel); border: 1px solid var(--border);
  border-radius: 12px;
  margin-bottom: 14px; flex-wrap: wrap;
}
.stepper .step {
  appearance: none; border: 0; background: transparent;
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px; border-radius: 9px; cursor: pointer;
  font-size: 13px; color: var(--text-muted); font-weight: 500;
  flex: 1 1 0; min-width: 140px; font-family: inherit;
  transition: background .12s, color .12s;
}
.stepper .step:hover:not(.locked) { background: var(--slate-bg); color: var(--text); }
.stepper .step .num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 50%;
  background: var(--panel-3); border: 1.5px solid var(--border-strong);
  font-weight: 700; font-size: 12px;
  flex-shrink: 0; color: var(--text-muted);
}
.stepper .step .label { flex: 1; text-align: left; }
.stepper .step .state { font-size: 14px; }
.stepper .step.active { background: var(--panel-2); color: var(--text); }
.stepper .step.active .num { background: var(--accent); border-color: var(--accent); color: var(--accent-text); }
.stepper .step.done .num { background: var(--green); border-color: var(--green); color: #042519; }
.stepper .step.locked { opacity: 0.55; cursor: not-allowed; }
.stepper .step.notes-tab { flex: 0 0 auto; min-width: 0; }
.stepper .step.notes-tab .label { white-space: nowrap; }

/* === Live-Webseiten-Buttons (Step 2 + Sticky) ============================ */
.handover-live-buttons { display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; }
.live-buttons-bar { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.btn-website-live {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 18px;
  background: linear-gradient(135deg, #1d4ed8, #2563eb);
  color: #fff !important;
  border-radius: 12px;
  text-decoration: none !important;
  box-shadow: 0 4px 14px rgba(37, 99, 235, 0.3);
  transition: transform .15s, box-shadow .15s;
}
.btn-website-live.compact { padding: 10px 14px; flex: 1; min-width: 240px; }
.btn-website-live.compact .bwl-icon { font-size: 18px; }
.btn-website-live.compact .bwl-title { font-size: 14px; }
.btn-website-live:hover { transform: translateY(-1px); box-shadow: 0 8px 22px rgba(37, 99, 235, 0.4); text-decoration: none !important; }
.btn-website-live.secondary {
  background: linear-gradient(135deg, #6d28d9, #7c3aed);
  box-shadow: 0 4px 14px rgba(124, 58, 237, 0.3);
}
.btn-website-live.secondary:hover { box-shadow: 0 8px 22px rgba(124, 58, 237, 0.4); }
.btn-website-live .bwl-icon { font-size: 24px; }
.btn-website-live .bwl-label { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.btn-website-live .bwl-title { font-weight: 700; font-size: 15px; }
.btn-website-live .bwl-sub {
  font-size: 11px; opacity: 0.85; font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  word-break: break-all;
}
.btn-website-live .bwl-arrow { font-size: 18px; opacity: 0.85; }

/* === Loom-Aufnahme-Launcher =============================================== */
.loom-launcher {
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px; flex-wrap: wrap;
  padding: 14px 16px; margin: 0 0 14px;
  background: linear-gradient(135deg, rgba(139, 92, 246, 0.15) 0%, rgba(245, 158, 11, 0.10) 100%);
  border: 1px solid rgba(245, 158, 11, 0.3);
  border-radius: 12px;
}
.loom-launcher-head { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 240px; }
.loom-launcher-icon { font-size: 28px; }
.loom-launcher-title { font-weight: 700; font-size: 15px; color: var(--text); margin-bottom: 2px; }
.loom-launcher-sub { font-size: 12px; color: var(--text-muted); }
.loom-launcher-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.btn-loom-launch {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 12px 18px;
  background: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%);
  color: #fff !important;
  border: none; border-radius: 10px;
  font-size: 14px; font-weight: 700;
  cursor: pointer; text-decoration: none;
  box-shadow: 0 4px 14px rgba(124, 58, 237, 0.3);
  transition: transform .12s, box-shadow .12s;
  font-family: inherit;
}
.btn-loom-launch:hover { transform: translateY(-1px); box-shadow: 0 8px 22px rgba(124, 58, 237, 0.4); }
.btn-loom-launch .bll-icon {
  display: inline-block; width: 10px; height: 10px;
  background: #ef4444; border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.3);
  animation: loom-rec-pulse 1.6s infinite ease-in-out;
}
@keyframes loom-rec-pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.3); }
  50%      { box-shadow: 0 0 0 6px rgba(239, 68, 68, 0.0); }
}

/* === Mail-Templates ======================================================= */
.mail-row {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 14px; border: 1px solid var(--border); border-radius: 10px;
  margin-bottom: 8px; background: var(--panel-2);
}
.mail-row > div:first-child { flex: 1; min-width: 200px; }
.dusie-toggle {
  display: inline-flex; border: 1px solid var(--border); border-radius: 8px;
  overflow: hidden; background: var(--panel-2);
}
.dusie-opt {
  padding: 6px 12px; border: none; background: transparent;
  font-size: 13px; font-weight: 600; color: var(--text-muted);
  cursor: pointer; min-width: 38px; font-family: inherit;
}
.dusie-opt.active { background: var(--violet-strong); color: #fff; }
.dusie-opt:not(.active):hover { background: var(--slate-bg); color: var(--text); }
.btn.green.sent { background: #047857; color: #fff; border-color: #047857; }

.dusie-global {
  display: inline-flex; align-items: center; gap: 8px;
  margin-bottom: 14px; padding: 6px 10px;
  background: var(--panel-2); border: 1px solid var(--border);
  border-radius: 8px;
}
.mail-template {
  border: 1px solid var(--border); border-radius: 12px;
  margin-bottom: 10px; background: var(--panel-2);
  overflow: hidden; transition: box-shadow .15s;
}
.mail-template:has(.mail-template-editor:not([style*="display:none"])) {
  box-shadow: var(--glow-violet);
  border-color: var(--violet);
}
.mail-template-head {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 16px;
}
.mail-template-head .mtl-info { flex: 1; min-width: 200px; }
.mail-template-head .mtl-label { font-weight: 700; font-size: 14px; color: var(--text); }
.mail-template-head .mtl-hint { color: var(--text-muted); font-size: 12px; }
.mail-template-editor {
  padding: 0 16px 16px;
  border-top: 1px dashed var(--border);
  background: linear-gradient(180deg, var(--panel-3), var(--panel-2));
}
.mail-template-editor .field { margin-bottom: 12px; margin-top: 12px; }
.mail-template-editor .field input,
.mail-template-editor .field textarea {
  width: 100%; box-sizing: border-box;
  padding: 10px 12px; border: 1px solid var(--border);
  border-radius: 8px; font-size: 14px; font-family: inherit;
  background: var(--panel);
}
.mail-template-editor .field textarea {
  resize: vertical;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;
  font-size: 13px; line-height: 1.55; min-height: 220px;
}
.mail-template-actions {
  display: flex; gap: 8px; align-items: center; flex-wrap: wrap;
  padding-top: 6px;
}

/* === Generation-Queue (queue.html) ======================================= */
.queue-bucket { margin-bottom: 18px; }
.queue-bucket-header {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  margin: 0 0 10px;
}
.queue-bucket-header h2 { margin: 0; font-size: 17px; color: var(--text); }
.queue-bucket-header .badge {
  display: inline-block; padding: 2px 9px; border-radius: 999px;
  font-size: 12px; font-weight: 700;
  background: var(--slate-bg); color: var(--text-muted);
  border: 1px solid var(--border);
}
.queue-bucket-header .badge.ready    { background: var(--green-bg);  color: var(--green-text); border-color: rgba(16, 185, 129, 0.3); }
.queue-bucket-header .badge.progress { background: var(--blue-bg);   color: var(--blue-text); border-color: rgba(56, 189, 248, 0.3); }
.queue-bucket-header .badge.error    { background: var(--red-bg);    color: var(--red-text); border-color: rgba(244, 63, 94, 0.3); }

.queue-row {
  display: grid;
  grid-template-columns: 200px 1fr 200px 200px;
  gap: 12px; align-items: center;
  padding: 12px 14px; margin-bottom: 8px;
  background: var(--panel);
  border: 1px solid var(--border);
  border-left: 4px solid var(--border-strong);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow);
  transition: transform .08s ease, box-shadow .08s ease, background .12s;
  cursor: pointer;
}
.queue-row:hover { transform: translateY(-1px); box-shadow: var(--shadow-lg); background: var(--panel-2); }
.queue-row.s-ready      { border-left-color: var(--accent); }
.queue-row.s-pending,
.queue-row.s-crawling,
.queue-row.s-generating,
.queue-row.s-deploying  { border-left-color: var(--blue); }
.queue-row.s-error      { border-left-color: var(--red); }

.queue-status {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px; border-radius: 6px;
  font-size: 12px; font-weight: 700; line-height: 1.3;
  border: 1px solid transparent;
}
.queue-status.s-ready      { background: var(--green-bg); color: var(--green-text); border-color: rgba(16, 185, 129, 0.3); }
.queue-status.s-pending,
.queue-status.s-crawling,
.queue-status.s-generating,
.queue-status.s-deploying  { background: var(--blue-bg); color: var(--blue-text); border-color: rgba(56, 189, 248, 0.3); }
.queue-status.s-error      { background: var(--red-bg); color: var(--red-text); border-color: rgba(244, 63, 94, 0.3); }
.queue-status .dot {
  width: 8px; height: 8px; border-radius: 50%; background: currentColor;
}
.queue-status.s-pending .dot,
.queue-status.s-crawling .dot,
.queue-status.s-generating .dot,
.queue-status.s-deploying .dot { animation: queue-pulse 1.4s infinite ease-in-out; }
@keyframes queue-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.3; }
}
.queue-biz { font-weight: 700; color: var(--text); font-size: 15px; }
.queue-meta { color: var(--text-muted); font-size: 12px; margin-top: 2px; }
.queue-meta a { color: var(--text-muted); }
.queue-age {
  font-size: 12px; color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}
.queue-age.warn { color: var(--amber-text); font-weight: 600; }
.queue-age.bad  { color: var(--red-text);   font-weight: 700; }
.queue-actions {
  display: flex; gap: 6px; justify-content: flex-end; flex-wrap: wrap;
}

/* === Lead-Detail-Header (legacy fallback) ================================ */
.lead-header {
  display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start;
  padding: 18px 20px; background: var(--panel);
  border: 1px solid var(--border); border-radius: var(--radius);
  margin-bottom: 14px; box-shadow: var(--shadow);
}
.lead-header h1 { margin: 0; font-size: 22px; letter-spacing: -.01em; color: var(--text); }
.lead-header .sub { color: var(--text-muted); font-size: 13px; margin-top: 4px; }
.lead-header .contact-block { display: flex; flex-direction: column; gap: 6px; font-size: 13px; }
.lead-header .contact-block a { color: var(--text); font-weight: 600; }

/* === Listen (legacy fallback) ============================================ */
.list-block { margin: 12px 0; }
.list-block h3 { font-size: 13px; margin: 0 0 6px; color: var(--text-muted); text-transform: uppercase; letter-spacing: .05em; }
.list-block ul { margin: 0; padding-left: 18px; }
.list-block ul li { margin-bottom: 4px; color: var(--text); }
.list-block.hooks ul li { color: var(--blue-text); }
.list-block.weaknesses ul li { color: var(--red-text); }
.list-block.improvements ul li { color: var(--accent); }

/* === Theme-Toggle (in der Nav) =========================================== */
.theme-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; padding: 0;
  border-radius: 8px;
}
.theme-toggle .theme-icon {
  font-size: 16px; line-height: 1;
  display: inline-block;
  transition: transform .25s ease;
}
.theme-toggle:hover .theme-icon { transform: rotate(20deg); }
:root[data-theme="light"] .theme-toggle .theme-icon { transform: rotate(0); }

/* Light-Mode-spezifische Feinjustierungen ----------------------------------- */
:root[data-theme="light"] body {
  /* dezenterer Glow im Light-Mode (bg-glow-* werden bereits ueberschrieben,
     aber die radial-gradient-Groesse darf gleich bleiben) */
}
:root[data-theme="light"] .nav .links a.active {
  background: var(--panel-2); border-color: var(--border-strong);
}
:root[data-theme="light"] .lead-card .btn-bigcall.disabled,
:root[data-theme="light"] .lead-card .btn-bigcall:not([href]) {
  background: var(--panel-2); color: var(--text-muted); border-color: var(--border);
}
:root[data-theme="light"] .pill {
  /* Auf hellem Hintergrund Border kraeftiger fuer Lesbarkeit */
  border-color: var(--border-strong);
}
:root[data-theme="light"] .activity-item,
:root[data-theme="light"] .history-row {
  /* Auf hellem Hintergrund einen feinen Border statt panel-Hintergrund */
}
:root[data-theme="light"] .role-pill.admin {
  background: var(--text); color: var(--panel);
}
/* Quality-Badge: Akzent-Glow im Light-Mode etwas reduzieren */
:root[data-theme="light"] .quality-Aplus,
:root[data-theme="light"] .quality-A\+ {
  background: linear-gradient(135deg, #047857, #00b389);
  box-shadow: 0 0 0 1px rgba(0, 179, 137, 0.3), 0 4px 10px rgba(0, 179, 137, 0.18);
  color: #ffffff;
}
:root[data-theme="light"] .quality-A { color: #ffffff; }
:root[data-theme="light"] .quality-B { color: #ffffff; }
:root[data-theme="light"] .quality-C { color: #ffffff; }
/* Im Light-Mode: Phone-Big-Button mit kraeftigerem Akzent */
:root[data-theme="light"] .lead-card .btn-bigcall {
  color: #ffffff;
}
/* Im Light-Mode: Send-Mail-Button-Sent-Variant */
:root[data-theme="light"] .btn.green.sent {
  background: #047857; color: #fff; border-color: #047857;
}
/* Im Light-Mode: Toast soll Kontrast halten */
:root[data-theme="light"] .toast {
  background: var(--text); color: var(--panel); border-color: var(--text);
}
/* Im Light-Mode: Bulk-Bar etwas heller */
:root[data-theme="light"] .bulk-bar {
  background: var(--panel); color: var(--text);
}
:root[data-theme="light"] .bulk-bar select { color: var(--text); }

/* === Mobile =============================================================== */
@media (max-width: 720px) {
  .lead-row { grid-template-columns: 1fr; gap: 6px; }
  .lead-row .contact { font-size: 13px; }
  .nav { flex-wrap: wrap; }
  .queue-row { grid-template-columns: 1fr; gap: 8px; }
  .queue-actions { justify-content: flex-start; }
  .call-bar { grid-template-columns: 1fr; }
  .call-bar-right { justify-content: space-between; }
}

/* =========================================================================
   DASHBOARD KPI-KARTEN + TABS + WIEDERVORLAGE-CLUSTER (Mai 2026)
   ========================================================================= */

/* KPI-Karten — Reihe oben auf /app/ */
.kpi-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
.kpi-card {
  appearance: none; cursor: pointer; font-family: inherit; text-align: left;
  background: var(--panel); border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 14px 16px;
  display: flex; flex-direction: column; gap: 4px;
  box-shadow: var(--shadow);
  transition: transform .12s, box-shadow .12s, border-color .12s;
  border-left: 3px solid var(--border-strong);
}
.kpi-card.is-clickable:hover { transform: translateY(-1px); box-shadow: var(--shadow-lg); }
.kpi-card[disabled] { cursor: default; opacity: 0.85; }
.kpi-card .kpi-value {
  font-size: 26px; font-weight: 800; color: var(--text);
  font-variant-numeric: tabular-nums; line-height: 1;
}
.kpi-card .kpi-label {
  font-size: 12px; color: var(--text-muted); font-weight: 600;
  text-transform: uppercase; letter-spacing: .04em;
}
.kpi-card .kpi-hint { font-size: 11px; color: var(--text-dim); }
.kpi-card.kpi-accent  { border-left-color: var(--accent); }
.kpi-card.kpi-green   { border-left-color: var(--green); }
.kpi-card.kpi-amber   { border-left-color: var(--amber); }
.kpi-card.kpi-red     { border-left-color: var(--red); }
.kpi-card.kpi-blue    { border-left-color: var(--blue); }
.kpi-card.kpi-violet  { border-left-color: var(--violet); }
.kpi-card.kpi-red .kpi-value   { color: var(--red-text); }
.kpi-card.kpi-amber .kpi-value { color: var(--amber-text); }

/* Tages-Empfehlung-Banner */
.daily-rec {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  padding: 14px 18px; margin-bottom: 14px;
  background: var(--panel); border: 1px solid var(--border);
  border-left: 4px solid var(--accent);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow);
}
.daily-rec-icon { font-size: 24px; line-height: 1; }
.daily-rec-body { flex: 1; min-width: 0; }
.daily-rec-title {
  font-size: 11px; font-weight: 700; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .06em;
}
.daily-rec-msg { color: var(--text); font-size: 14px; font-weight: 500; margin-top: 2px; }
.daily-rec.daily-rec-red    { border-left-color: var(--red); background: var(--red-bg); }
.daily-rec.daily-rec-amber  { border-left-color: var(--amber); background: var(--amber-bg); }
.daily-rec.daily-rec-violet { border-left-color: var(--violet); background: var(--violet-soft); }
.daily-rec.daily-rec-accent { border-left-color: var(--accent); background: var(--accent-soft); }
.daily-rec.daily-rec-green  { border-left-color: var(--green); background: var(--green-bg); }

/* Tab-Nav-Counter (kleine Pille hinter dem Tab-Label) */
.tabs button .tab-count {
  display: inline-block; margin-left: 6px;
  padding: 1px 8px; border-radius: 999px;
  background: var(--slate-bg); color: var(--text-muted);
  font-size: 11px; font-weight: 700; min-width: 20px; text-align: center;
}
.tabs button.active .tab-count { background: var(--accent); color: var(--accent-text); }

/* Followup-Pill (klein, in der Lead-Karte) */
.followup-pill {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 8px; border-radius: 999px;
  font-size: 11px; font-weight: 600; line-height: 1.4;
  margin-left: 8px;
  vertical-align: middle;
  cursor: help;
}
.followup-pill.overdue { background: var(--red-bg);   color: var(--red-text);   border: 1px solid rgba(244,63,94,.3); }
.followup-pill.today   { background: var(--amber-bg); color: var(--amber-text); border: 1px solid rgba(245,158,11,.3); }
.followup-pill.future  { background: var(--blue-bg);  color: var(--blue-text);  border: 1px solid rgba(56,189,248,.3); }

/* Wiedervorlage-Cluster (Tab "Wiedervorlage") */
.wv-cluster {
  background: var(--panel); border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-bottom: 14px; box-shadow: var(--shadow);
  overflow: hidden;
}
.wv-cluster-head {
  padding: 12px 16px;
  background: var(--panel-2);
  border-bottom: 1px solid var(--border);
}
.wv-cluster-title { font-size: 14px; font-weight: 700; color: var(--text); }
.wv-cluster-count { color: var(--text-muted); font-weight: 500; font-size: 13px; }
.wv-cluster-sub { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.wv-cluster-body { padding: 8px 12px; display: flex; flex-direction: column; gap: 6px; }
.wv-cluster.wv-tone-red    { border-left: 4px solid var(--red); }
.wv-cluster.wv-tone-red    .wv-cluster-head { background: var(--red-bg); }
.wv-cluster.wv-tone-amber  { border-left: 4px solid var(--amber); }
.wv-cluster.wv-tone-amber  .wv-cluster-head { background: var(--amber-bg); }
.wv-cluster.wv-tone-blue   { border-left: 4px solid var(--blue); }
.wv-cluster.wv-tone-blue   .wv-cluster-head { background: var(--blue-bg); }
.wv-cluster.wv-tone-slate  { border-left: 4px solid var(--border-strong); }

.wv-row {
  display: grid; grid-template-columns: 1fr auto; gap: 10px;
  padding: 10px 12px;
  background: var(--panel); border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: border-color .12s, background .12s, transform .1s;
}
.wv-row:hover { border-color: var(--accent); background: var(--panel-2); transform: translateY(-1px); }
.wv-row-main { min-width: 0; }
.wv-row-head { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 4px; }
.wv-biz { font-weight: 600; font-size: 14px; color: var(--text); }
.wv-meta { font-size: 12px; color: var(--text-muted); }
.wv-reason { font-size: 12px; color: var(--text); margin-top: 4px; opacity: .85; }
.wv-due { font-size: 11px; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.wv-row-side { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.wv-phone a { color: var(--text); font-weight: 600; font-size: 13px; }
.wv-phone a:hover { color: var(--accent); }
.wv-age-badge {
  display: inline-flex; align-items: center;
  padding: 2px 8px; border-radius: 999px;
  font-size: 11px; font-weight: 700;
}
.wv-age-badge.overdue { background: var(--red-bg);   color: var(--red-text); }
.wv-age-badge.future  { background: var(--blue-bg);  color: var(--blue-text); }

/* "Angebot raus" Tabelle */
table.offers-table tr { cursor: pointer; }
table.offers-table .reply-pending {
  display: inline-flex; align-items: center;
  padding: 2px 8px; border-radius: 999px;
  background: var(--slate-bg); color: var(--text-muted);
  font-size: 11px; font-weight: 600;
}

/* Followup-Mini-Banner auf Lead-Detail (Mai 2026 verkleinert) */
.followup-mini {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 10px; border-radius: 999px;
  font-size: 12px; font-weight: 600;
  border: 1px solid var(--amber);
  background: var(--amber-bg); color: var(--amber-text);
  cursor: help;
}
.followup-mini.is-overdue { border-color: var(--red); background: var(--red-bg); color: var(--red-text); }
.followup-mini.is-future  { border-color: var(--blue); background: var(--blue-bg); color: var(--blue-text); }
.followup-mini-actions { display: inline-flex; gap: 6px; margin-left: 6px; }

/* Next-Action-Card (Lead-Detail) */
.next-action-card {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px;
  background: var(--accent-soft); border: 1px solid var(--accent);
  border-radius: var(--radius-sm);
  margin-bottom: 12px;
  box-shadow: var(--shadow);
}
.next-action-icon { font-size: 22px; line-height: 1; }
.next-action-body { flex: 1; min-width: 0; }
.next-action-title {
  font-size: 11px; font-weight: 700; color: var(--accent);
  text-transform: uppercase; letter-spacing: .06em;
}
.next-action-msg { color: var(--text); font-size: 14px; font-weight: 600; margin-top: 2px; }
.next-action-card.tone-amber { background: var(--amber-bg); border-color: var(--amber); }
.next-action-card.tone-amber .next-action-title { color: var(--amber-text); }
.next-action-card.tone-red { background: var(--red-bg); border-color: var(--red); }
.next-action-card.tone-red .next-action-title { color: var(--red-text); }
.next-action-card.tone-violet { background: var(--violet-soft); border-color: var(--violet); }
.next-action-card.tone-violet .next-action-title { color: var(--violet-strong); }
.next-action-card.tone-green { background: var(--green-bg); border-color: var(--green); }
.next-action-card.tone-green .next-action-title { color: var(--green-text); }

/* Mobile fallback */
@media (max-width: 700px) {
  .kpi-row { grid-template-columns: repeat(2, 1fr); }
  .kpi-card .kpi-value { font-size: 22px; }
}
