/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:14px;-webkit-font-smoothing:antialiased}
body{font-family:-apple-system,BlinkMacSystemFont,'Inter','Segoe UI',sans-serif;background:#f9f9f8;color:#1a1a1a;line-height:1.55}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{cursor:pointer;font:inherit}

/* ── Tokens ── */
:root{
  --bg:       #f9f9f8;
  --surface:  #ffffff;
  --border:   #e8e8e5;
  --border-2: #d4d4cf;
  --text:     #1a1a1a;
  --muted:    #888882;
  --accent:   #1a1a1a;
  --accent-bg:#f0f0ee;
  --red:      #c0392b;
  --red-bg:   #fdf2f2;
  --green:    #1a6b3c;
  --green-bg: #f0faf4;
  --amber:    #92600a;
  --amber-bg: #fdf8ee;
  --blue:     #1a4b8a;
  --blue-bg:  #f0f5fc;
  --r:        6px;
  --nav-h:    52px;
}

/* ── Nav ── */
.shell{min-height:100vh;display:flex;flex-direction:column}
.nav{height:var(--nav-h);border-bottom:1px solid var(--border);background:var(--surface);display:flex;align-items:center;gap:0;padding:0 1.5rem;position:sticky;top:0;z-index:50}
.nav-brand{font-weight:700;font-size:15px;letter-spacing:-.3px;margin-right:2rem;color:var(--text)}
.nav-links{display:flex;align-items:center;gap:0;flex:1}
.nav-link{padding:.35rem .75rem;border-radius:var(--r);color:var(--muted);font-size:13px;font-weight:500;transition:background .12s,color .12s;display:flex;align-items:center;gap:.3rem;position:relative}
.nav-link:hover{color:var(--text);background:var(--accent-bg)}
.nav-link.is-active{color:var(--text);background:var(--accent-bg)}
.dot-alert{width:6px;height:6px;border-radius:50%;background:var(--red);display:inline-block}
.nav-user{display:flex;align-items:center;gap:.5rem;margin-left:auto;padding-left:1.5rem;border-left:1px solid var(--border)}
.nav-user-name{font-size:13px;font-weight:500}
.nav-user-role{font-size:11px;color:var(--muted);background:var(--accent-bg);padding:.1rem .45rem;border-radius:999px}
.nav-logout{color:var(--muted);padding:.3rem;border-radius:var(--r);transition:color .12s;font-size:16px;display:flex}
.nav-logout:hover{color:var(--red)}

/* ── Main ── */
.main{flex:1;max-width:1160px;width:100%;margin:0 auto;padding:2rem 1.5rem}

/* ── Page title ── */
.page-title{font-size:20px;font-weight:700;letter-spacing:-.4px;margin-bottom:1.5rem}

/* ── Toolbar (title + button row) ── */
.toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;gap:.75rem;flex-wrap:wrap}
.toolbar h1{font-size:20px;font-weight:700;letter-spacing:-.4px}
.toolbar-right{display:flex;gap:.5rem;align-items:center}

/* ── Cards ── */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:1.25rem}
.card+.card{margin-top:1rem}
.card-label{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.35rem}
.card-val{font-size:26px;font-weight:700;letter-spacing:-.5px}

/* ── Stat grid ── */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-bottom:1.5rem}

/* ── Table ── */
.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
table{width:100%;border-collapse:collapse;font-size:13px}
thead th{padding:.55rem 1rem;text-align:left;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);background:var(--bg)}
td{padding:.65rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle}
tr:last-child td{border-bottom:none}
tbody tr:hover td{background:#fafaf9}

/* Kein-Kontakt geschwärzt */
tr.no-contact td:not(.no-contact-actions){background:#f0f0f0 !important;color:transparent !important;text-shadow:0 0 8px rgba(0,0,0,.5);user-select:none;pointer-events:none}
tr.no-contact td.no-contact-actions{background:#f0f0f0 !important}
tr.no-contact:hover td{background:#e8e8e8 !important}
.no-contact-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:11px;font-weight:600;color:var(--red);background:var(--red-bg);padding:.15rem .5rem;border-radius:var(--r)}

/* ── Badges ── */
.badge{display:inline-flex;align-items:center;padding:.18rem .55rem;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}
.badge-blau   {background:var(--blue-bg); color:var(--blue)}
.badge-gelb   {background:var(--amber-bg);color:var(--amber)}
.badge-gruen  {background:var(--green-bg);color:var(--green)}
.badge-rot    {background:var(--red-bg);  color:var(--red)}
.badge-grau   {background:var(--accent-bg);color:var(--muted)}

/* ── Lead-Nr Chip ── */
.lead-nr{font-family:'SF Mono','Fira Code',monospace;font-size:11px;font-weight:600;color:var(--muted);background:var(--accent-bg);padding:.15rem .5rem;border-radius:4px;letter-spacing:.08em}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;gap:.35rem;padding:.42rem .85rem;border-radius:var(--r);border:1px solid var(--border-2);font-size:13px;font-weight:500;transition:background .12s,border-color .12s,color .12s;white-space:nowrap;background:var(--surface);color:var(--text)}
.btn:hover{background:var(--accent-bg);border-color:var(--border-2)}
.btn-primary{background:var(--text);color:#fff;border-color:var(--text)}
.btn-primary:hover{background:#333;border-color:#333}
.btn-danger{background:var(--red-bg);color:var(--red);border-color:#f5c6c2}
.btn-danger:hover{background:#fde8e7}
.btn-sm{padding:.25rem .55rem;font-size:12px}
.btn .ti{font-size:14px}
.btn-icon{padding:.35rem;border-radius:var(--r);border:1px solid transparent;color:var(--muted);font-size:15px;display:inline-flex;transition:background .12s,color .12s}
.btn-icon:hover{background:var(--accent-bg);color:var(--text)}

/* ── Forms ── */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}
.field{display:flex;flex-direction:column;gap:.3rem}
.field label{font-size:12px;font-weight:600;color:var(--muted)}
.field label .req{color:var(--red);margin-left:.15rem}
input,select,textarea{width:100%;padding:.42rem .65rem;border:1px solid var(--border-2);border-radius:var(--r);font:inherit;font-size:13px;color:var(--text);background:var(--surface);transition:border-color .12s,box-shadow .12s;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--text);box-shadow:0 0 0 3px rgba(26,26,26,.08)}
textarea{resize:vertical;min-height:72px;line-height:1.5}
input[type=checkbox]{width:16px;height:16px;accent-color:var(--text);cursor:pointer;flex-shrink:0}
.checkbox-row{display:flex;align-items:center;gap:.5rem;font-size:13px;cursor:pointer}
.checkbox-row input{margin:0}

/* ── Filter bar ── */
.filterbar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:flex-end;margin-bottom:1.25rem}
.filterbar .field{margin:0}
.filterbar input,.filterbar select{min-width:140px}
.filterbar-actions{display:flex;gap:.4rem;padding-bottom:1px}

/* ── Flash ── */
.flash{display:flex;align-items:center;gap:.5rem;padding:.65rem 1rem;border-radius:var(--r);margin-bottom:1.25rem;font-size:13px;border:1px solid}
.flash-erfolg{background:var(--green-bg);color:var(--green);border-color:#b7e6cc}
.flash-fehler{background:var(--red-bg);color:var(--red);border-color:#f5c6c2}
.flash-info{background:var(--blue-bg);color:var(--blue);border-color:#c0d6f5}

/* ── Section title ── */
.section-title{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:.85rem}

/* ── Divider ── */
.divider{border:none;border-top:1px solid var(--border);margin:1.25rem 0}

/* ── Aktivitätsliste ── */
.akt-list{display:flex;flex-direction:column}
.akt-item{display:flex;gap:.75rem;padding:.8rem 0;border-bottom:1px solid var(--border)}
.akt-item:last-child{border-bottom:none}
.akt-icon{width:30px;height:30px;border-radius:50%;background:var(--accent-bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:14px;color:var(--muted);margin-top:1px}
.akt-body{flex:1;min-width:0}
.akt-typ{font-size:13px;font-weight:600}
.akt-meta{font-size:12px;color:var(--muted);margin-top:.15rem}
.akt-beschreibung{font-size:13px;color:var(--muted);margin-top:.2rem}

/* ── Aufgaben ── */
.aufgabe-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--border)}
.aufgabe-item:last-child{border-bottom:none}
.aufgabe-done{text-decoration:line-through;color:var(--muted)}

/* ── Duplikat-Warnung ── */
.duplikat-box{background:var(--amber-bg);border:1px solid #f0d78a;border-radius:var(--r);padding:.75rem 1rem;margin-bottom:1rem;font-size:13px}
.duplikat-box strong{color:var(--amber)}

/* ── Login ── */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}
.login-card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:2rem}
.login-title{font-size:18px;font-weight:700;margin-bottom:1.5rem;letter-spacing:-.3px}

/* ── Empty state ── */
.empty{text-align:center;padding:3rem 1rem;color:var(--muted)}
.empty .ti{font-size:36px;margin-bottom:.5rem;display:block}
.empty p{font-size:13px}

/* ── Lead-Detail ── */
.lead-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}
.lead-title-block h1{font-size:22px;font-weight:700;letter-spacing:-.4px;margin-bottom:.3rem}
.lead-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.detail-cols{display:grid;grid-template-columns:320px 1fr;gap:1.25rem;align-items:start}
.detail-field{margin-bottom:.75rem}
.detail-label{font-size:11px;font-weight:600;color:var(--muted);margin-bottom:.15rem}
.detail-val{font-size:13px}

/* ── Pagination ── */
.pager{display:flex;gap:.25rem;margin-top:1rem;flex-wrap:wrap}
.pager a,.pager span{padding:.3rem .6rem;border-radius:var(--r);border:1px solid var(--border);font-size:12px;font-weight:500;color:var(--muted);background:var(--surface)}
.pager a:hover{background:var(--accent-bg)}
.pager .cur{background:var(--text);color:#fff;border-color:var(--text)}

/* ── Import ── */
.import-preview{margin-top:1rem;overflow-x:auto}
.upload-zone{border:2px dashed var(--border-2);border-radius:var(--r);padding:2.5rem;text-align:center;color:var(--muted);font-size:13px;cursor:pointer;transition:border-color .15s}
.upload-zone:hover{border-color:var(--text)}

/* ── Responsive ── */
@media(max-width:800px){
  .detail-cols{grid-template-columns:1fr}
  .form-grid,.form-grid-3{grid-template-columns:1fr}
  .nav-links{display:none}
}
