/* ==========================================================================
   Schatteria Companion – Shared Design System
   Farbwelt: Schatteria-Rot (Sidebar-Layout, an das interne Preislisten-Tool
   angelehnt). Legacy-Variablennamen (--primary, --accent, --muted, --border,
   --text) bleiben erhalten, damit bestehende Inline-Styles/JS unverändert
   funktionieren – nur ihre Werte wurden auf die neue Markenfarbe gemappt.
   ========================================================================== */
:root{
  --brand:#cf0e3e; --brand-dark:#b00935; --brand-50:#fef2f4; --brand-100:#fde6ea; --brand-700:#b00935;
  --ink:#111827; --soft:#4b5563; --faint:#8a909c;
  --bg:#f4f5f6; --line:#e5e7eb; --line-soft:#f0f1f3;
  --card:#ffffff;

  /* Legacy-Aliase für bestehende Komponenten/JS */
  --primary:var(--brand); --primary-dark:var(--brand-dark); --accent:#e8a33d;
  --border:var(--line); --text:var(--ink); --muted:var(--soft);
  --danger:#c0392b; --ok:#1e8f5f; --warn:#c77d0e;
  --radius:14px;
  --sidebar-w:250px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;}
a{color:inherit;}

/* ---- App shell: Sidebar + Content ---- */
.app-shell{display:flex;align-items:stretch;min-height:100vh;}

.sidebar{width:var(--sidebar-w);flex-shrink:0;background:#fff;border-right:1px solid var(--line);
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:40;}
.sidebar-logo{display:flex;align-items:center;gap:10px;padding:22px 18px 18px;}
.sidebar-logo .mark{width:30px;height:30px;border-radius:8px;background:var(--brand);
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:14px;
  flex-shrink:0;transform:rotate(-8deg);}
.sidebar-logo .word{font-size:15px;font-weight:800;letter-spacing:.04em;color:var(--ink);}

.side-nav{flex:1;padding:6px 10px 12px;}
.nav-group{margin-bottom:2px;border-bottom:1px solid var(--line-soft);}
.nav-group:last-child{border-bottom:none;}
.nav-group summary.nav-group-title{list-style:none;cursor:pointer;display:flex;align-items:center;
  justify-content:space-between;gap:6px;font-size:11px;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--brand);padding:12px 10px;}
.nav-group summary.nav-group-title::-webkit-details-marker{display:none;}
.nav-group summary.nav-group-title::marker{content:"";}
.nav-group-title .chevron{flex-shrink:0;color:var(--brand);transition:transform .15s;display:flex;}
.nav-group-title .chevron svg{width:14px;height:14px;}
.nav-group:not([open]) .chevron{transform:rotate(-90deg);}
.nav-group-body{padding:0 0 8px;}
.nav-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;
  font-size:13.5px;font-weight:600;color:var(--soft);text-decoration:none;margin:1px 0;}
.nav-link .ic{width:18px;height:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.nav-link .ic svg{width:17px;height:17px;}
.nav-link:hover{background:var(--line-soft);color:var(--ink);}
.nav-link.active{background:var(--brand-50);color:var(--brand-700);font-weight:700;}
.nav-badge{margin-left:auto;background:var(--brand);color:#fff;font-size:9.5px;font-weight:800;
  padding:2px 7px;border-radius:999px;letter-spacing:.02em;}

.sidebar-footer{border-top:1px solid var(--line);padding:14px 16px;flex-shrink:0;}
.sidebar-user{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.sidebar-user .av{width:32px;height:32px;border-radius:9px;background:var(--ink);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12.5px;flex-shrink:0;}
.sidebar-user .name{font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.3;}
.sidebar-user .sub{font-size:11px;color:var(--faint);}
.sidebar-legal{font-size:10.5px;color:var(--faint);}
.sidebar-legal a{color:var(--faint);text-decoration:none;}
.sidebar-legal a:hover{text-decoration:underline;}

.main-col{flex:1;min-width:0;display:flex;flex-direction:column;min-height:100vh;}

/* ---- Top bar (per Seite) ---- */
header.topbar{background:#fff;border-bottom:1px solid var(--line);padding:16px 26px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  position:sticky;top:0;z-index:30;flex-shrink:0;}
header.topbar .topbar-title h1{margin:0;font-size:18px;font-weight:800;color:var(--ink);}
header.topbar .topbar-sub{font-size:12px;color:var(--faint);margin-top:3px;}
header.topbar .topbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}

main.wrap{max-width:1600px;width:100%;box-sizing:border-box;margin:0 auto;padding:22px 26px;flex:1;}

/* ---- Buttons ---- */
.btn{border:none;border-radius:10px;padding:10px 16px;font-size:14px;font-weight:600;
  cursor:pointer;font-family:inherit;}
.btn-primary{background:var(--primary);color:#fff;}
.btn-primary:hover{background:var(--primary-dark);}
.btn-outline{background:#fff;color:var(--primary);border:1.5px solid var(--border);}
.btn-outline:hover{border-color:var(--primary);}
.btn-sm{padding:6px 10px;font-size:12.5px;border-radius:8px;}

/* ---- Cards ---- */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  padding:14px;}
.card h3{margin:0 0 10px 0;font-size:13px;text-transform:uppercase;letter-spacing:.03em;color:var(--primary);}

/* ---- Chips / badges ---- */
.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;
  font-size:12px;font-weight:600;}
.chip.grey{background:#eef1f1;color:var(--muted);}
.chip.green{background:#e5f6ee;color:var(--ok);}
.chip.yellow{background:#fdf1de;color:var(--warn);}
.chip.red{background:#fbe9e7;color:var(--danger);}

/* ---- Ampel dot ---- */
.ampel{display:inline-block;width:11px;height:11px;border-radius:50%;flex-shrink:0;}
.ampel.green{background:var(--ok);}
.ampel.yellow{background:var(--warn);}
.ampel.red{background:var(--danger);}

/* ---- Toolbar (filters, search) ---- */
.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.toolbar input[type=text],.toolbar select{padding:9px 12px;border:1.5px solid var(--border);
  border-radius:10px;font-size:13.5px;font-family:inherit;background:#fff;}
.toolbar .spacer{flex:1;}
.toolbar .legend{display:flex;gap:14px;align-items:center;font-size:12px;color:var(--muted);}
.toolbar .legend span{display:flex;align-items:center;gap:5px;}

/* ---- Empty state ---- */
.empty-hint{color:var(--muted);font-size:12.5px;text-align:center;padding:18px 6px;}

/* ---- Modal ---- */
.modal-backdrop{position:fixed;inset:0;background:rgba(20,30,32,.45);display:none;
  align-items:center;justify-content:center;z-index:100;padding:16px;}
.modal-backdrop.open{display:flex;}
.modal{background:#fff;border-radius:var(--radius);max-width:480px;width:100%;
  max-height:88vh;overflow-y:auto;padding:20px;}
.modal h2{margin:0 0 14px 0;font-size:16px;color:var(--primary);}
.modal .field{margin-bottom:10px;}
.modal .field label{display:block;font-size:11.5px;color:var(--muted);margin-bottom:3px;font-weight:600;}
.modal .field .val{font-size:14.5px;font-weight:500;}
.modal .close-x{position:absolute;top:14px;right:16px;background:none;border:none;font-size:20px;
  color:var(--muted);cursor:pointer;}

footer.hint{max-width:1600px;width:100%;box-sizing:border-box;margin:0 auto;padding:14px 26px 26px;
  border-top:1px solid var(--line);color:var(--faint);font-size:11.5px;flex-shrink:0;}

/* ==========================================================================
   Vertrieb / CRM Klickdummy – shared components (Leads, Aufträge,
   Ansprechpartner, Kunden). Optik & Layout im bestehenden Design-System.
   ========================================================================== */

/* ---- Segmented control (Ansichts-Umschalter Tabelle/Kacheln) ---- */
.segmented{display:inline-flex;background:#eef1f1;border-radius:10px;padding:3px;gap:2px;}
.segmented button{border:none;background:none;font-family:inherit;font-size:12.5px;font-weight:700;
  color:var(--muted);padding:7px 13px;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:6px;}
.segmented button svg{width:15px;height:15px;}
.segmented button.active{background:#fff;color:var(--brand);box-shadow:0 1px 3px rgba(0,0,0,.08);}

/* ---- Status pills ---- */
.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;
  font-size:11.5px;font-weight:700;white-space:nowrap;}
.pill .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:currentColor;}
.pill.grey{background:#eef1f1;color:#5b6472;}
.pill.blue{background:#e6f0fb;color:#1d4ed8;}
.pill.green{background:#e5f6ee;color:#1e8f5f;}
.pill.amber{background:#fdf1de;color:#b7791f;}
.pill.red{background:#fbe9e7;color:#c0392b;}
.pill.violet{background:#f0e9fb;color:#7c3aed;}

/* ---- Avatar (Initialen) ---- */
.avatar{width:34px;height:34px;border-radius:10px;background:var(--brand-50);color:var(--brand-700);
  display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:12.5px;flex-shrink:0;}
.avatar.sm{width:26px;height:26px;font-size:10.5px;border-radius:8px;}
.avatar.lg{width:52px;height:52px;font-size:18px;border-radius:14px;}
.avatar.ink{background:var(--ink);color:#fff;}

/* ---- Data table ---- */
.data-table-wrap{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.data-scroll{overflow-x:auto;}
table.data-table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:820px;}
table.data-table thead th{position:sticky;top:0;background:#fafbfb;z-index:2;text-align:left;
  font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);font-weight:800;
  padding:11px 14px;border-bottom:1.5px solid var(--border);white-space:nowrap;}
table.data-table tbody td{padding:11px 14px;border-bottom:1px solid var(--line-soft);vertical-align:middle;}
table.data-table tbody tr{cursor:pointer;transition:background .1s;}
table.data-table tbody tr:hover{background:var(--brand-50);}
table.data-table tbody tr:last-child td{border-bottom:none;}
table.data-table td.num{text-align:right;font-variant-numeric:tabular-nums;}
.group-row td{background:#f4f5f6;font-weight:800;color:var(--ink);font-size:11.5px;
  text-transform:uppercase;letter-spacing:.03em;padding:8px 14px;}
.group-row .count{color:var(--faint);font-weight:700;margin-left:6px;}
.cell-main{font-weight:700;color:var(--ink);}
.cell-sub{font-size:11px;color:var(--faint);margin-top:1px;}
.cell-flex{display:flex;align-items:center;gap:10px;}
a.tel-link,a.mail-link{color:var(--brand-700);text-decoration:none;font-weight:600;}
a.tel-link:hover,a.mail-link:hover{text-decoration:underline;}

/* ---- Card/tile grid (Leads/Kunden Kacheln) ---- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;}
.entity-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:15px;
  cursor:pointer;transition:box-shadow .15s,transform .15s,border-color .15s;position:relative;}
.entity-card:hover{box-shadow:0 8px 22px rgba(0,0,0,.08);transform:translateY(-2px);border-color:#d8dbe0;}
.entity-card .ec-top{display:flex;align-items:flex-start;gap:11px;margin-bottom:11px;}
.entity-card .ec-title{font-size:14.5px;font-weight:800;color:var(--ink);line-height:1.25;}
.entity-card .ec-sub{font-size:11.5px;color:var(--faint);margin-top:2px;}
.entity-card .ec-body{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--soft);}
.entity-card .ec-row{display:flex;align-items:center;gap:7px;}
.entity-card .ec-row svg{width:14px;height:14px;color:var(--faint);flex-shrink:0;}
.entity-card .ec-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;
  margin-top:12px;padding-top:11px;border-top:1px solid var(--line-soft);}
.entity-card .ec-value{font-size:15px;font-weight:800;color:var(--brand-700);font-variant-numeric:tabular-nums;}

/* ---- Toolbar tabs (Status-Filter) ---- */
.filter-tabs{display:flex;gap:4px;flex-wrap:wrap;}
.filter-tabs button{border:1.5px solid var(--border);background:#fff;font-family:inherit;font-size:12.5px;
  font-weight:600;color:var(--soft);padding:7px 13px;border-radius:999px;cursor:pointer;display:flex;align-items:center;gap:7px;}
.filter-tabs button:hover{border-color:#cdd2d8;}
.filter-tabs button.active{background:var(--ink);color:#fff;border-color:var(--ink);}
.filter-tabs button .badge{background:rgba(0,0,0,.08);border-radius:999px;padding:1px 7px;font-size:10.5px;font-weight:800;}
.filter-tabs button.active .badge{background:rgba(255,255,255,.22);color:#fff;}

/* ---- Detail page layout ---- */
.detail-head{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin-bottom:16px;}
.detail-head .dh-top{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;}
.detail-head .dh-title{font-size:19px;font-weight:800;color:var(--ink);line-height:1.2;}
.detail-head .dh-sub{font-size:12.5px;color:var(--faint);margin-top:3px;display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.detail-head .dh-spacer{flex:1;}
.detail-head .dh-actions{display:flex;gap:8px;flex-wrap:wrap;}
.detail-head .dh-meta{display:flex;gap:26px;flex-wrap:wrap;margin-top:15px;padding-top:14px;border-top:1px solid var(--line-soft);}
.detail-head .dh-meta .m{min-width:0;}
.detail-head .dh-meta .m .l{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);font-weight:700;}
.detail-head .dh-meta .m .v{font-size:14px;font-weight:700;color:var(--ink);margin-top:2px;}

.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start;}
@media(max-width:1200px){.detail-grid{grid-template-columns:1fr;}}
.detail-main{display:flex;flex-direction:column;gap:16px;min-width:0;}
.detail-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:82px;}

/* ---- Section card (grouped fields) ---- */
.sec{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.sec-head{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line-soft);}
.sec-head .sh-ic{width:28px;height:28px;border-radius:8px;background:var(--brand-50);color:var(--brand-700);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.sec-head .sh-ic svg{width:16px;height:16px;}
.sec-head h3{margin:0;font-size:13.5px;font-weight:800;color:var(--ink);text-transform:none;letter-spacing:0;}
.sec-head .sh-sub{font-size:11px;color:var(--faint);font-weight:600;}
.sec-head .sh-spacer{flex:1;}
.sec-body{padding:16px;}
.sec-body.pad0{padding:0;}

/* field grid inside sections */
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;}
.fgrid.c3{grid-template-columns:repeat(3,minmax(0,1fr));}
.fgrid .f.span2{grid-column:span 2;}
.fgrid .f.span3{grid-column:1 / -1;}
@media(max-width:640px){.fgrid,.fgrid.c3{grid-template-columns:1fr;}.fgrid .f.span2,.fgrid .f.span3{grid-column:auto;}}
.f label{display:block;font-size:11px;color:var(--faint);font-weight:700;margin-bottom:5px;
  text-transform:uppercase;letter-spacing:.03em;}
.f label .req{color:var(--brand);}
.f label .cond{font-size:9.5px;background:#f0e9fb;color:#7c3aed;border-radius:5px;padding:1px 5px;
  margin-left:6px;text-transform:none;letter-spacing:0;font-weight:700;}
.f input,.f select,.f textarea{width:100%;padding:9px 11px;border:1.5px solid var(--border);
  border-radius:9px;font-size:13.5px;font-family:inherit;background:#fff;color:var(--ink);}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--brand);
  box-shadow:0 0 0 3px var(--brand-50);}
.f textarea{min-height:64px;resize:vertical;}
.f input:disabled,.f select:disabled{background:#f7f8f9;color:var(--faint);}
.f .static{font-size:14px;font-weight:600;color:var(--ink);padding:2px 0;}
.f .hint{font-size:10.5px;color:var(--faint);margin-top:4px;}
.f .with-unit{display:flex;align-items:center;gap:0;}
.f .with-unit input{border-top-right-radius:0;border-bottom-right-radius:0;}
.f .with-unit .unit{border:1.5px solid var(--border);border-left:none;border-top-right-radius:9px;
  border-bottom-right-radius:9px;padding:9px 12px;font-size:12.5px;color:var(--faint);background:#fafbfb;font-weight:700;}
.f.locked{position:relative;}
.f-note{font-size:11px;color:var(--faint);display:flex;align-items:center;gap:6px;}

/* ---- Kalkulation (Auftragswerte) ---- */
.calc{font-size:13px;}
.calc .row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 16px;
  border-bottom:1px solid var(--line-soft);}
.calc .row:last-child{border-bottom:none;}
.calc .row .lbl{color:var(--soft);}
.calc .row .amt{font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap;}
.calc .row.minus .lbl::before{content:"− ";color:var(--faint);}
.calc .row.plus .lbl::before{content:"+ ";color:var(--faint);}
.calc .row.result{background:#fafbfb;}
.calc .row.result .lbl{font-weight:800;color:var(--ink);}
.calc .row.total{background:var(--brand-50);}
.calc .row.total .lbl{font-weight:800;color:var(--brand-700);}
.calc .row.total .amt{color:var(--brand-700);font-size:15px;}
.calc .row .amt input{width:120px;text-align:right;padding:6px 9px;border:1.5px solid var(--border);
  border-radius:8px;font-size:13px;font-family:inherit;font-variant-numeric:tabular-nums;}

/* ---- Contact stream (Kontaktverlauf) ---- */
.stream-tabs{display:flex;gap:5px;flex-wrap:wrap;padding:12px 14px;border-bottom:1px solid var(--line-soft);}
.stream-tabs button{border:none;background:#eef1f1;font-family:inherit;font-size:11.5px;font-weight:700;
  color:var(--soft);padding:5px 11px;border-radius:999px;cursor:pointer;display:flex;align-items:center;gap:6px;}
.stream-tabs button.active{background:var(--brand);color:#fff;}
.stream-compose{display:flex;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line-soft);}
.stream-compose input{flex:1;padding:9px 12px;border:1.5px solid var(--border);border-radius:9px;
  font-size:13px;font-family:inherit;}
.stream{list-style:none;margin:0;padding:8px 0;max-height:620px;overflow-y:auto;}
.stream li{display:flex;gap:12px;padding:11px 16px;position:relative;}
.stream li::before{content:"";position:absolute;left:29px;top:38px;bottom:-11px;width:2px;background:var(--line-soft);}
.stream li:last-child::before{display:none;}
.stream .ev-ic{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;z-index:1;}
.stream .ev-ic svg{width:16px;height:16px;}
.ev-ic.mail{background:#e6f0fb;color:#1d4ed8;}
.ev-ic.call{background:#e5f6ee;color:#1e8f5f;}
.ev-ic.callne{background:#fdeceb;color:#d9534f;}
.ev-ic.sms{background:#f0e9fb;color:#7c3aed;}
.ev-ic.termin{background:#fdf1de;color:#b7791f;}
.ev-ic.note{background:#eef1f1;color:#5b6472;}
.ev-ic.task{background:#fbe9e7;color:#c0392b;}
.stream .ev-body{flex:1;min-width:0;}
.stream .ev-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.stream .ev-title{font-size:13px;font-weight:700;color:var(--ink);}
.stream .ev-time{font-size:11px;color:var(--faint);white-space:nowrap;}
.stream .ev-text{font-size:12.5px;color:var(--soft);margin-top:3px;line-height:1.45;}
.stream .ev-tags{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap;}
.stream .ev-ref{font-size:10.5px;background:#eef1f1;color:var(--soft);border-radius:6px;padding:2px 7px;font-weight:700;}
.stream .ev-ref.scope{background:#eef2ff;color:#4338ca;}

/* clickable stream entries + open-in-modal affordance */
.stream li.clickable{cursor:pointer;border-radius:10px;transition:background .12s;}
.stream li.clickable:hover{background:#f7f8f9;}
.stream .ev-text.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.stream .ev-open{font-size:10.5px;font-weight:800;color:var(--brand);display:inline-flex;align-items:center;gap:4px;margin-top:7px;}
.stream .ev-open svg{width:12px;height:12px;}

/* ---- Contact stream: compose type buttons ---- */
.compose-types{display:flex;flex-wrap:wrap;gap:6px;padding:12px 14px;border-bottom:1px solid var(--line-soft);}
.compose-types button{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--border);
  background:#fff;font-family:inherit;font-size:11.5px;font-weight:700;color:var(--soft);
  padding:6px 10px;border-radius:9px;cursor:pointer;transition:.14s;}
.compose-types button:hover{border-color:var(--brand);color:var(--brand);background:#fff5f7;}
.compose-types button .ct-ic{width:18px;height:18px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.compose-types button .ct-ic svg{width:12px;height:12px;}

/* ---- Contact stream: scope (Vorgang) filter ---- */
.stream-scope{display:flex;align-items:center;gap:9px;padding:10px 14px;border-bottom:1px solid var(--line-soft);background:#fafbfb;}
.stream-scope .ss-label{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);white-space:nowrap;}
.stream-scope .ss-pills{display:flex;gap:5px;flex-wrap:wrap;}
.stream-scope button{border:1px solid var(--border);background:#fff;font-family:inherit;font-size:11px;font-weight:700;
  color:var(--soft);padding:4px 10px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}
.stream-scope button.active{background:var(--ink);color:#fff;border-color:var(--ink);}
.stream-scope button .ss-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}

/* ---- Contact modal (E-Mail / Telefonprotokoll / Neuer Eintrag) ---- */
.cv-modal{position:fixed;inset:0;z-index:80;display:none;align-items:flex-start;justify-content:center;
  padding:5vh 20px;background:rgba(20,24,28,.5);backdrop-filter:blur(2px);}
.cv-modal.open{display:flex;}
.cv-dialog{background:#fff;width:100%;max-width:720px;border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.28);
  max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:cvpop .16s ease;}
@keyframes cvpop{from{transform:translateY(8px);opacity:0;}to{transform:none;opacity:1;}}
.cv-head{display:flex;align-items:flex-start;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line-soft);}
.cv-head .ev-ic{width:38px;height:38px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.cv-head .ev-ic svg{width:20px;height:20px;}
.cv-head .cv-htext{min-width:0;}
.cv-head h3{margin:0;font-size:16px;line-height:1.25;}
.cv-head .cv-sub{font-size:12px;color:var(--faint);margin-top:4px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.cv-close{margin-left:auto;border:none;background:#eef1f1;width:30px;height:30px;border-radius:8px;cursor:pointer;
  font-size:17px;line-height:1;color:var(--soft);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.cv-close:hover{background:#e2e6e6;}
.cv-body{padding:18px 20px;overflow-y:auto;}
.cv-metabar{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px 20px;
  padding-bottom:15px;margin-bottom:16px;border-bottom:1px dashed var(--line-soft);}
.cv-metabar .m{font-size:13px;color:var(--ink);}
.cv-metabar .m b{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);font-weight:800;margin-bottom:3px;}
.cv-mailbody{font-size:13.5px;line-height:1.65;color:var(--ink);}
.cv-mailbody p{margin:0 0 13px;}
.cv-attach{margin-top:18px;display:flex;gap:8px;flex-wrap:wrap;}
.cv-attach .att{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--border);border-radius:9px;
  padding:7px 11px;font-size:12px;font-weight:600;color:var(--soft);}
.cv-attach .att svg{width:15px;height:15px;color:var(--brand);flex-shrink:0;}
.cv-form label{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--faint);margin:0 0 6px;}
.cv-form .fld{margin-bottom:14px;}
.cv-form input,.cv-form textarea,.cv-form select{width:100%;padding:10px 12px;border:1.5px solid var(--border);
  border-radius:9px;font-size:13px;font-family:inherit;background:#fff;}
.cv-form textarea{min-height:120px;resize:vertical;line-height:1.5;}
.cv-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.cv-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--line-soft);background:#fafbfb;}

/* ---- Files list ---- */
.file-list{list-style:none;margin:0;padding:0;}
.file-list li{border-bottom:1px solid var(--line-soft);}
.file-list li:last-child{border-bottom:none;}
.file-row{display:flex;align-items:center;gap:11px;padding:10px 16px;text-decoration:none;color:inherit;cursor:pointer;transition:background .12s;}
.file-row:hover{background:var(--brand-50);}
.file-ic{width:30px;height:30px;border-radius:8px;background:#eef1f1;color:var(--soft);display:flex;
  align-items:center;justify-content:center;font-size:10px;font-weight:800;flex-shrink:0;}
.file-ic.pdf{background:#fbe9e7;color:#c0392b;}
.file-ic.img{background:#e6f0fb;color:#1d4ed8;}
.file-ic.link{background:#e5f6ee;color:#1e8f5f;}
.file-list .fl-info{min-width:0;}
.file-list .fl-name{font-size:12.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.file-list .fl-meta{font-size:10.5px;color:var(--faint);margin-top:2px;display:flex;align-items:center;gap:5px;}
.file-list .fl-src{display:inline-flex;align-items:center;gap:4px;color:var(--faint);}
.file-list .fl-src svg{width:11px;height:11px;flex-shrink:0;}
.file-list .fl-spacer{flex:1;}
/* Ablageordner / Dokumentart – bestimmt den Ablageort, daher hervorgehoben */
.fl-folder{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:8px;
  background:var(--brand-50);color:var(--brand-700);font-size:11px;font-weight:800;white-space:nowrap;flex-shrink:0;}
.fl-folder svg{width:13px;height:13px;flex-shrink:0;}
.fl-preview{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;
  color:var(--faint);flex-shrink:0;transition:color .12s;}
.fl-preview svg{width:15px;height:15px;}
.file-row:hover .fl-preview{color:var(--brand);}

/* ---- Timeline / history (Aktualisierungsverlauf) ---- */
.history{list-style:none;margin:0;padding:0;font-size:12px;}
.history li{padding:9px 16px;border-bottom:1px solid var(--line-soft);color:var(--soft);}
.history li:last-child{border-bottom:none;}
.history .ht{color:var(--faint);font-size:11px;}
.history b{color:var(--ink);}

/* ---- Process stepper (Auftrag) ---- */
.stepper{display:flex;gap:0;overflow-x:auto;padding:2px;}
.stepper .step{flex:1;min-width:150px;background:#fff;border:1px solid var(--border);padding:12px 14px;
  position:relative;cursor:pointer;}
.stepper .step:first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius);}
.stepper .step:last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius);}
.stepper .step:not(:last-child){border-right:none;}
.stepper .step .sn{font-size:10px;font-weight:800;color:var(--faint);letter-spacing:.03em;}
.stepper .step .st{font-size:13px;font-weight:700;color:var(--ink);margin-top:3px;}
.stepper .step .sm{font-size:10.5px;color:var(--faint);margin-top:2px;}
.stepper .step.done{background:var(--brand-50);}
.stepper .step.done .sn{color:var(--brand-700);}
.stepper .step.active{background:var(--ink);}
.stepper .step.active .sn{color:#fff;opacity:.7;}
.stepper .step.active .st,.stepper .step.active .sm{color:#fff;}
.stepper .step .schk{position:absolute;top:10px;right:12px;width:16px;height:16px;color:var(--brand-700);}

/* ---- Consent toggles (Werbeeinwilligung) ---- */
.consent-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;
  border-bottom:1px solid var(--line-soft);}
.consent-row:last-child{border-bottom:none;}
.consent-row .cr-l{font-size:13px;font-weight:600;color:var(--ink);}
.switch{position:relative;width:40px;height:22px;flex-shrink:0;}
.switch input{opacity:0;width:0;height:0;}
.switch .sl{position:absolute;inset:0;background:#cdd2d8;border-radius:999px;transition:.15s;cursor:pointer;}
.switch .sl::before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;
  border-radius:50%;transition:.15s;}
.switch input:checked + .sl{background:var(--ok);}
.switch input:checked + .sl::before{transform:translateX(18px);}

/* ---- Mini list (Ansprechpartner am Kunden, Vorgänge etc.) ---- */
.mini-list{list-style:none;margin:0;padding:0;}
.mini-list li{display:flex;align-items:center;gap:11px;padding:10px 16px;border-bottom:1px solid var(--line-soft);
  cursor:pointer;}
.mini-list li:last-child{border-bottom:none;}
.mini-list li:hover{background:var(--brand-50);}
.mini-list .ml-main{font-size:12.5px;font-weight:700;color:var(--ink);}
.mini-list .ml-sub{font-size:11px;color:var(--faint);margin-top:1px;}
.mini-list .ml-spacer{flex:1;}

/* ---- Split view (Ansprechpartner: list + detail) ---- */
.split{display:grid;grid-template-columns:340px minmax(0,1fr);gap:16px;align-items:start;}
@media(max-width:1000px){.split{grid-template-columns:1fr;}}
.split-list{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;
  position:sticky;top:82px;}
.split-list .sl-search{padding:12px;border-bottom:1px solid var(--line-soft);}
.split-list .sl-search input{width:100%;padding:9px 12px;border:1.5px solid var(--border);border-radius:9px;
  font-size:13px;font-family:inherit;}
.split-list .sl-items{max-height:calc(100vh - 220px);overflow-y:auto;}
.split-list .sl-item{display:flex;align-items:center;gap:11px;padding:11px 14px;border-bottom:1px solid var(--line-soft);
  cursor:pointer;}
.split-list .sl-item:hover{background:var(--brand-50);}
.split-list .sl-item.active{background:var(--brand-50);box-shadow:inset 3px 0 0 var(--brand);}
.split-list .sl-item .sli-main{font-size:13px;font-weight:700;color:var(--ink);}
.split-list .sl-item .sli-sub{font-size:11px;color:var(--faint);margin-top:1px;}

/* ---- Chips inline (tags/eigenschaften) ---- */
.chips-inline{display:flex;flex-wrap:wrap;gap:6px;}
.chips-inline .ci{background:#eef1f1;color:var(--soft);border-radius:999px;padding:4px 11px;font-size:12px;font-weight:600;
  display:inline-flex;align-items:center;gap:6px;}
.chips-inline .ci .x{color:var(--faint);cursor:pointer;font-weight:800;}
.chips-inline .add{border:1.5px dashed var(--border);background:#fff;color:var(--faint);cursor:pointer;}

/* ---- Empty/placeholder banner ---- */
.dummy-note{background:#fff;border:1px dashed var(--border);border-radius:var(--radius);padding:11px 15px;
  font-size:11.5px;color:var(--faint);display:flex;align-items:center;gap:9px;margin-bottom:16px;}
.dummy-note svg{width:16px;height:16px;flex-shrink:0;color:var(--brand);}
