@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap');

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

:root {
  --font:  'Roboto', sans-serif;
  --ink:   #111827;
  --ink2:  #1F2937;
  --sub:   #6B7280;
  --muted: #9CA3AF;
  --border:#E5E7EB;
  --white: #FFFFFF;
  --bg:    #F4F2EE;
  --surf:  #FAFAFA;
  --blue:  #2563EB;
  --blueh: #1D4ED8;
  --bluel: #EFF6FF;
  --blued: rgba(37,99,235,.12);
  --green: #16A34A;
  --red:   #DC2626;
  --r:     8px;
  --r2:    12px;
  --sh1:   0 1px 3px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.06);
  --sh2:   0 4px 16px rgba(0,0,0,.09), 0 16px 40px rgba(0,0,0,.10);
  --sh3:   0 12px 40px rgba(0,0,0,.18), 0 32px 80px rgba(0,0,0,.15);
}

#crm-app {
  position:fixed; inset:0; z-index:8000;
  background:var(--bg); display:flex; flex-direction:column;
  font-family:var(--font); font-size:14px; color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
.admin-bar #crm-app { top:32px; }
@media screen and (max-width:782px){ .admin-bar #crm-app { top:46px; } }
body.crm-popup-open { overflow:hidden !important; }

/* ── TOPBAR ── */
.tb {
  height:56px; background:#111827;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 28px; flex-shrink:0;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.tb-l { display:flex; align-items:center; gap:24px; }
.tb-logo { display:flex; align-items:center; gap:10px; user-select:none; }
.tb-gem {
  width:32px; height:32px; border-radius:8px; flex-shrink:0;
  background:linear-gradient(135deg,#3B82F6,#8B5CF6);
  display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:700; color:#fff; letter-spacing:-.3px;
}
.tb-brand { display:flex; flex-direction:column; gap:1px; }
.tb-name  { font-size:14px; font-weight:500; color:#fff; line-height:1; }
.tb-sub   { font-size:10px; color:rgba(255,255,255,.28); letter-spacing:.06em; font-weight:300; }
.tb-nav { display:flex; gap:2px; }
.tb-nb {
  display:flex; align-items:center; gap:6px;
  padding:6px 14px; border-radius:7px; border:none; cursor:pointer;
  font-family:var(--font); font-size:13px; font-weight:400;
  color:rgba(255,255,255,.38); background:none; transition:all .15s;
}
.tb-nb:hover { color:rgba(255,255,255,.75); background:rgba(255,255,255,.07); }
.tb-nb.is-on { color:#fff; background:rgba(255,255,255,.11); font-weight:500; }
.tb-add {
  display:flex; align-items:center; gap:7px;
  padding:8px 18px; border-radius:var(--r); border:none; cursor:pointer;
  background:var(--blue); color:#fff; font-family:var(--font);
  font-size:13px; font-weight:500; transition:all .2s;
  box-shadow:0 1px 2px rgba(37,99,235,.4), 0 4px 12px rgba(37,99,235,.2);
}
.tb-add:hover { background:var(--blueh); transform:translateY(-1px); }

/* ── BODY / VIEWS ── */
.app-body { flex:1; overflow-y:auto; }
.app-body::-webkit-scrollbar { width:5px; }
.app-body::-webkit-scrollbar-thumb { background:rgba(0,0,0,.12); border-radius:3px; }
.view { display:none; }
.view.is-on { display:block; }
.vl-inner { padding:28px 36px 60px; max-width:1440px; }


/* ── CONTROLS — single horizontal row ── */
.ctrl-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: nowrap;
  gap: 7px;
  margin-bottom: 14px;
  overflow-x: auto;
}
.ctrl-row::-webkit-scrollbar { display: none; }
.ctrl-l, .ctrl-r { display: contents; }

.srch {
  display: flex; align-items: center; gap: 8px;
  background: var(--white); border: 1.5px solid var(--border);
  border-radius: var(--r); padding: 7px 12px; min-width: 180px; max-width: 220px;
  box-shadow: var(--sh1); transition: all .15s; flex-shrink: 0;
}
.srch:focus-within { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blued); }
.srch svg { color: var(--muted); flex-shrink: 0; }
.srch input { border: none; outline: none; font-size: 13px; color: var(--ink); background: none; width: 100%; font-family: var(--font); }
.srch input::placeholder { color: var(--muted); }

.flt {
  background: var(--white); border: 1.5px solid var(--border);
  border-radius: var(--r); padding: 7px 26px 7px 10px;
  font-size: 12.5px; color: var(--ink); cursor: pointer; outline: none;
  font-family: var(--font); box-shadow: var(--sh1); flex-shrink: 0;
  -webkit-appearance: none; appearance: none; transition: border .15s;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 8px center;
  white-space: nowrap;
}
.flt:focus { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blued); }

.count-chip {
  font-size: 12px; font-weight: 400; color: var(--sub);
  background: var(--white); border: 1.5px solid var(--border);
  padding: 6px 12px; border-radius: 999px; box-shadow: var(--sh1);
  white-space: nowrap; flex-shrink: 0; margin-left: auto;
}

/* ── STATUS PILLS ── */
.pill-row { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:18px; }
.spill {
  display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:999px;
  border:1.5px solid var(--border); cursor:pointer; font-size:12px; font-weight:400;
  font-family:var(--font); background:var(--white); color:var(--sub); box-shadow:var(--sh1); transition:all .15s;
}
.spill:hover { border-color:#D1D5DB; box-shadow:var(--sh2); }
.spill.on { background:var(--ink); color:#fff; border-color:var(--ink); }
.spill-dot { width:7px; height:7px; border-radius:50%; flex-shrink:0; display:inline-block; }
.s-nowy               .spill-dot,.spill-dot.s-nowy               { background:#60A5FA; }
.s-odebral            .spill-dot,.spill-dot.s-odebral            { background:#34D399; }
.s-nie_odebral        .spill-dot,.spill-dot.s-nie_odebral        { background:#F87171; }
.s-umowione_spotkanie .spill-dot,.spill-dot.s-umowione_spotkanie { background:#FBBF24; }
.s-zakwalifikowany    .spill-dot,.spill-dot.s-zakwalifikowany    { background:#A78BFA; }
.s-sprzedazny         .spill-dot,.spill-dot.s-sprzedazny         { background:#2DD4BF; }
.s-smieciowy          .spill-dot,.spill-dot.s-smieciowy          { background:#9CA3AF; }
.spill-n { background:rgba(0,0,0,.07); font-size:11px; font-weight:500; padding:1px 6px; border-radius:999px; min-width:20px; text-align:center; color:inherit; }

/* ── TABLE ── */
.tbl-card { background:var(--white); border:1.5px solid var(--border); border-radius:var(--r2); overflow:hidden; box-shadow:var(--sh1); }
.tbl { width:100%; border-collapse:collapse; }
.tbl thead { background:#FAFAFA; }
.tbl thead tr { border-bottom:1.5px solid var(--border); }
.tbl th { padding:11px 18px; text-align:left; font-size:11px; font-weight:500; color:var(--muted); text-transform:uppercase; letter-spacing:.07em; white-space:nowrap; }
.tbl th:first-child { padding-left:22px; }
.tbl td { padding:14px 18px; border-bottom:1px solid #F3F4F6; vertical-align:middle; font-size:13.5px; color:#374151; }
.tbl td:first-child { padding-left:22px; }
.tbl tbody tr:last-child td { border-bottom:none; }
.tbl-row { cursor:pointer; transition:background .08s; }
.tbl-row:hover { background:#F9FAFB; }
.tbl-row:hover .av-name { color:var(--blue); }

.av-wrap { display:flex; align-items:center; gap:11px; }
.av { width:36px; height:36px; border-radius:9px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; color:#fff; letter-spacing:-.3px; }
.av0{background:linear-gradient(135deg,#3B82F6,#6366F1);}
.av1{background:linear-gradient(135deg,#10B981,#059669);}
.av2{background:linear-gradient(135deg,#F59E0B,#EF4444);}
.av3{background:linear-gradient(135deg,#8B5CF6,#EC4899);}
.av4{background:linear-gradient(135deg,#06B6D4,#3B82F6);}
.av5{background:linear-gradient(135deg,#F43F5E,#8B5CF6);}
.av6{background:linear-gradient(135deg,#F97316,#EAB308);}
.av7{background:linear-gradient(135deg,#14B8A6,#22C55E);}
.av-info { display:flex; flex-direction:column; gap:2px; }
.av-name  { font-size:13.5px; font-weight:500; color:var(--ink); transition:color .12s; }
.av-email { font-size:12px; color:var(--sub); }
.tbl-a { color:var(--blue); text-decoration:none; }
.tbl-a:hover { text-decoration:underline; }
.nd { color:#D1D5DB; }
.td-date { color:var(--muted); font-size:12.5px; white-space:nowrap; }

/* ── SOURCE TAGS ── */
.src-tag { display:inline-flex; align-items:center; gap:5px; padding:3px 9px; border-radius:6px; font-size:11.5px; font-weight:500; background:#F3F4F6; color:#6B7280; border:1px solid rgba(0,0,0,.07); white-space:nowrap; }
.src-fb_ads      { background:#EEF3FF; color:#1877F2; border-color:rgba(24,119,242,.2); }
.src-ig_ads      { background:#FFF0F8; color:#C13584; border-color:rgba(193,53,132,.2); }
.src-google_ads  { background:#EFF6FF; color:#3267D6; border-color:rgba(50,103,214,.2); }
.src-tiktok      { background:#F5F5F5; color:#333;    border-color:rgba(0,0,0,.12); }
.src-linkedin    { background:#EBF4FF; color:#0A66C2; border-color:rgba(10,102,194,.2); }
.src-seo         { background:#ECFDF5; color:#059669; border-color:rgba(5,150,105,.2); }
.src-spolka_sped { background:#FFFBEB; color:#B45309; border-color:rgba(180,83,9,.2); }
.src-ksiegowosc  { background:#F0FDFA; color:#0D9488; border-color:rgba(13,148,136,.2); }
.src-formularz   { background:#F5F3FF; color:#7C3AED; border-color:rgba(124,58,237,.2); }
.src-telefon     { background:#ECFDF5; color:#16A34A; border-color:rgba(22,163,74,.2); }
.src-polecenie   { background:#FEF3C7; color:#B45309; border-color:rgba(180,83,9,.2); }
.src-email       { background:#EFF6FF; color:#2563EB; border-color:rgba(37,99,235,.2); }
.src-inne        { background:#F9FAFB; color:#6B7280; border-color:rgba(0,0,0,.07); }

/* ── STATUS BADGES ── */
.sbadge { display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border-radius:999px; font-size:12px; font-weight:500; white-space:nowrap; }
.sbadge::before { content:''; width:6px; height:6px; border-radius:50%; flex-shrink:0; }
.sbadge.s-nowy               { background:#EFF6FF; color:#1E40AF; } .sbadge.s-nowy::before               { background:#60A5FA; }
.sbadge.s-odebral            { background:#ECFDF5; color:#065F46; } .sbadge.s-odebral::before            { background:#34D399; }
.sbadge.s-nie_odebral        { background:#FEF2F2; color:#991B1B; } .sbadge.s-nie_odebral::before        { background:#F87171; }
.sbadge.s-umowione_spotkanie { background:#FFFBEB; color:#92400E; } .sbadge.s-umowione_spotkanie::before { background:#FBBF24; }
.sbadge.s-zakwalifikowany    { background:#F5F3FF; color:#4C1D95; } .sbadge.s-zakwalifikowany::before    { background:#A78BFA; }
.sbadge.s-sprzedazny         { background:#ECFEFF; color:#164E63; } .sbadge.s-sprzedazny::before         { background:#22D3EE; }
.sbadge.s-smieciowy          { background:#F9FAFB; color:#4B5563; } .sbadge.s-smieciowy::before          { background:#9CA3AF; }

.empty-state { text-align:center; padding:80px 24px; }
.empty-ico   { font-size:44px; margin-bottom:14px; opacity:.35; }
.empty-title { font-size:17px; font-weight:500; color:var(--ink); margin-bottom:6px; }
.empty-sub   { font-size:14px; color:var(--sub); }

/* ── STATS ── */
.stats-head { font-size:20px; font-weight:400; color:var(--ink); margin-bottom:22px; }
.stats-grid { display:grid; grid-template-columns:1fr repeat(auto-fill,minmax(170px,1fr)); gap:12px; }
.stat-total { grid-row:1/3; background:var(--ink); color:#fff; border-radius:var(--r2); padding:28px; display:flex; flex-direction:column; justify-content:flex-end; }
.stat-total .stat-lbl { font-size:11px; font-weight:400; opacity:.38; text-transform:uppercase; letter-spacing:.07em; margin-bottom:8px; }
.stat-total .stat-num { font-size:52px; font-weight:300; line-height:1; }
.stat-card { background:var(--white); border:1.5px solid var(--border); border-radius:var(--r2); padding:20px; box-shadow:var(--sh1); transition:all .15s; }
.stat-card:hover { transform:translateY(-2px); box-shadow:var(--sh2); }
.stat-top  { display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.stat-lbl  { font-size:11px; font-weight:500; color:var(--sub); text-transform:uppercase; letter-spacing:.06em; }
.stat-num  { font-size:34px; font-weight:300; color:var(--ink); line-height:1; }
.stat-track{ height:2px; background:#E5E7EB; border-radius:2px; margin-top:14px; overflow:hidden; }
.stat-fill { height:100%; background:linear-gradient(90deg,var(--blue),#8B5CF6); border-radius:2px; min-width:3px; }

/* ═══════════════════════════════════════════════
   LEAD POPUP — centered, replaces side panel
═══════════════════════════════════════════════ */
#crm-popup-bg {
  position:fixed; inset:0; z-index:9100;
  background:rgba(0,0,0,.42);
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center; padding:20px;
}
.admin-bar #crm-popup-bg { top:32px; }

#crm-popup {
  width:100%; max-width:960px;
  max-height:calc(100vh - 80px);
  background:#fff; border-radius:16px;
  box-shadow:var(--sh3);
  display:flex; flex-direction:column;
  animation:popIn .2s cubic-bezier(.34,1.48,.64,1) both;
  overflow:hidden;
}
@keyframes popIn { from{transform:scale(.94) translateY(6px);opacity:0;} to{transform:none;opacity:1;} }

.pp-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 24px; border-bottom:1px solid var(--border); flex-shrink:0;
}
.pp-head-l { display:flex; align-items:center; gap:14px; }
.pp-av {
  width:46px; height:46px; border-radius:11px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-size:15px; font-weight:700; color:#fff;
  background:linear-gradient(135deg,var(--blue),#8B5CF6);
}
.pp-name    { font-size:17px; font-weight:500; color:var(--ink); margin-bottom:5px; line-height:1.2; }
.pp-meta    { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.pp-company { font-size:12.5px; color:var(--sub); }
.pp-head-r  { display:flex; align-items:center; gap:8px; }
.pp-btn {
  display:flex; align-items:center; gap:6px; padding:7px 14px;
  border-radius:var(--r); border:1.5px solid var(--border); cursor:pointer;
  font-family:var(--font); font-size:12.5px; font-weight:400;
  background:var(--white); color:var(--sub); transition:all .15s;
}
.pp-btn:hover { border-color:#D1D5DB; color:var(--ink); background:#F9FAFB; }
.pp-btn-del { color:var(--red); border-color:rgba(220,38,38,.22); }
.pp-btn-del:hover { background:#FEF2F2; border-color:var(--red); color:var(--red); }
.pp-close {
  width:32px; height:32px; border-radius:7px; background:#F3F4F6; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center; color:var(--sub); transition:all .15s; flex-shrink:0;
}
.pp-close:hover { background:#FEE2E2; color:var(--red); }

.pp-body { display:flex; flex:1; overflow:hidden; min-height:0; }

/* LEFT col */
.pp-l {
  width:300px; flex-shrink:0;
  border-right:1px solid var(--border);
  overflow-y:auto; padding:20px 20px 28px;
  background:#FAFAFA;
}
.pp-l::-webkit-scrollbar { width:3px; }
.pp-l::-webkit-scrollbar-thumb { background:rgba(0,0,0,.1); border-radius:2px; }

.pp-sec { margin-bottom:20px; }
.pp-sec:last-child { margin-bottom:0; }
.pp-sec-h {
  font-size:10px; font-weight:700; color:var(--muted);
  text-transform:uppercase; letter-spacing:.1em; margin-bottom:11px;
  display:flex; align-items:center; justify-content:space-between;
}

/* Pipeline */
.pn-stepper { position:relative; padding-left:20px; display:flex; flex-direction:column; }
.step-rail  { position:absolute; left:8px; top:9px; bottom:9px; width:2px; background:#E5E7EB; border-radius:2px; }
.step-fill  { position:absolute; top:0; left:0; width:100%; background:linear-gradient(180deg,var(--blue),#8B5CF6); border-radius:2px; transition:height .4s cubic-bezier(.4,0,.2,1); }
.pn-step { position:relative; z-index:1; display:flex; align-items:center; background:none; border:none; cursor:pointer; width:100%; padding:7px 0; font-family:var(--font); text-align:left; }
.pn-step-dot { width:18px; height:18px; border-radius:50%; flex-shrink:0; background:#fff; border:2px solid #D1D5DB; margin-right:11px; margin-left:-20px; position:relative; transition:all .2s; }
.pn-step-lbl { font-size:12.5px; color:var(--muted); font-weight:400; transition:all .15s; }
.pn-step.done .pn-step-dot { background:var(--blue); border-color:var(--blue); }
.pn-step.done .pn-step-lbl { color:var(--ink); font-weight:500; }
.pn-step.cur  .pn-step-dot { background:var(--blue); border-color:var(--blue); box-shadow:0 0 0 4px rgba(37,99,235,.15); transform:scale(1.1); }
.pn-step.cur  .pn-step-lbl { color:var(--ink); font-weight:700; font-size:13px; }
.pn-step:hover .pn-step-dot { border-color:var(--blue); }
.pn-step:hover .pn-step-lbl { color:var(--blue); }
.pn-step[data-s="sprzedazny"].cur .pn-step-dot { background:var(--green); border-color:var(--green); box-shadow:0 0 0 4px rgba(22,163,74,.15); }
.pn-step[data-s="sprzedazny"].cur .pn-step-lbl { color:var(--green); }
.pn-step[data-s="smieciowy"].cur  .pn-step-dot { background:var(--red);   border-color:var(--red);   box-shadow:0 0 0 4px rgba(220,38,38,.15); }
.pn-step[data-s="smieciowy"].cur  .pn-step-lbl { color:var(--red); }

/* Fields */
.pn-fields { display:flex; flex-direction:column; gap:11px; }
.pf { display:flex; align-items:flex-start; gap:10px; }
.pf-ico { width:26px; height:26px; border-radius:6px; flex-shrink:0; background:#EFEFEF; display:flex; align-items:center; justify-content:center; color:var(--muted); }
.pf-l { font-size:10px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; margin-bottom:2px; }
.pf-v { font-size:13px; font-weight:400; color:var(--ink); word-break:break-word; }
.pf-v a { color:var(--blue); text-decoration:none; }
.pf-v a:hover { text-decoration:underline; }
.pf-v .nd { color:#D1D5DB; }

/* Source picker in popup */
.pp-src-picker { display:flex; flex-direction:column; gap:10px; }
.pp-src-grp-lbl { font-size:10px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.07em; margin-bottom:6px; }
.pp-chips { display:flex; flex-wrap:wrap; gap:5px; }
.pp-chip {
  display:inline-flex; align-items:center; gap:5px;
  padding:5px 11px; border-radius:999px;
  border:1.5px solid var(--border); cursor:pointer;
  font-size:12px; font-weight:400; color:var(--sub);
  background:var(--white); transition:all .15s;
  font-family:var(--font); white-space:nowrap;
}
.pp-chip:hover { border-color:var(--blue); color:var(--blue); background:var(--bluel); }
.pp-chip.active { background:var(--blue); color:#fff; border-color:var(--blue); }
.pp-chip-save {
  margin-top:10px; padding:7px 16px; border:none; border-radius:var(--r);
  background:var(--ink); color:#fff; cursor:pointer; font-size:12px;
  font-weight:500; font-family:var(--font); transition:all .15s; display:none;
}
.pp-chip-save:hover { background:var(--ink2); }
.pp-chip-save.visible { display:inline-flex; align-items:center; gap:6px; }

/* Note */
.pp-edit-lnk { font-size:12px; font-weight:500; color:var(--blue); cursor:pointer; background:none; border:none; font-family:var(--font); }
.pp-edit-lnk:hover { opacity:.7; }
.note-display { font-size:13px; line-height:1.7; color:#374151; background:#fff; border:1.5px solid var(--border); border-radius:var(--r); padding:10px 12px; min-height:40px; white-space:pre-wrap; }
.note-ta { width:100%; padding:10px 12px; border:1.5px solid var(--blue); border-radius:var(--r); font-size:13px; line-height:1.6; font-family:var(--font); resize:vertical; outline:none; color:var(--ink); box-shadow:0 0 0 3px var(--blued); }
.note-actions { display:flex; gap:7px; margin-top:8px; }
.btn-s { padding:6px 14px; border:none; border-radius:7px; font-size:12.5px; font-weight:500; cursor:pointer; font-family:var(--font); transition:all .15s; }
.btn-blue  { background:var(--blue); color:#fff; }
.btn-blue:hover  { background:var(--blueh); }
.btn-ghost { background:#F3F4F6; color:#6B7280; }
.btn-ghost:hover { background:#E5E7EB; }

/* RIGHT col */
.pp-r { flex:1; overflow-y:auto; padding:22px 24px 28px; background:#fff; }
.pp-r::-webkit-scrollbar { width:3px; }
.pp-r::-webkit-scrollbar-thumb { background:rgba(0,0,0,.1); border-radius:2px; }
.act-title { font-size:14px; font-weight:500; color:var(--ink); margin-bottom:16px; }

/* Composer */
.composer { background:#FAFAFA; border:1.5px solid var(--border); border-radius:var(--r2); overflow:hidden; margin-bottom:22px; }
.comp-tabs { display:flex; border-bottom:1.5px solid var(--border); }
.ctab {
  flex:1; padding:11px 4px; background:none; border:none; cursor:pointer;
  font-size:12px; font-weight:400; color:var(--muted);
  border-bottom:2px solid transparent; margin-bottom:-1.5px;
  font-family:var(--font); transition:all .15s;
  display:flex; align-items:center; justify-content:center; gap:5px;
}
.ctab:hover { color:var(--ink); background:rgba(255,255,255,.6); }
.ctab.is-on { color:var(--blue); border-bottom-color:var(--blue); background:#fff; font-weight:500; }
.comp-body { padding:14px; }
#crm-ta { width:100%; padding:10px 12px; border:1.5px solid var(--border); border-radius:var(--r); font-size:13px; resize:vertical; min-height:78px; line-height:1.6; font-family:var(--font); background:#fff; color:var(--ink); outline:none; transition:border .15s, box-shadow .15s; }
#crm-ta:focus { border-color:var(--blue); box-shadow:0 0 0 3px var(--blued); }
#crm-ta::placeholder { color:#D1D5DB; }
.comp-foot { display:flex; align-items:center; justify-content:space-between; margin-top:10px; }
.comp-hint { font-size:11px; color:#D1D5DB; }
.btn-post { display:flex; align-items:center; gap:7px; padding:9px 18px; background:var(--ink); color:#fff; border:none; border-radius:var(--r); font-size:12.5px; font-weight:500; cursor:pointer; font-family:var(--font); transition:all .2s; }
.btn-post:hover { background:var(--ink2); transform:translateY(-1px); }
.btn-post:disabled { opacity:.4; cursor:not-allowed; transform:none; }

/* Timeline */
.timeline { display:flex; flex-direction:column; }
.tl-loading,.tl-empty { font-size:13px; color:var(--sub); padding:14px 0; }
.tl-item { display:flex; gap:12px; padding:14px 0; border-bottom:1px solid #F3F4F6; }
.tl-item:last-child { border-bottom:none; }
.tl-dot { width:34px; height:34px; border-radius:9px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:15px; }
.ti-note    .tl-dot { background:#F5F3FF; }
.ti-call    .tl-dot { background:#ECFDF5; }
.ti-email   .tl-dot { background:#EFF6FF; }
.ti-meeting .tl-dot { background:#FFFBEB; }
.ti-status  .tl-dot,.ti-system .tl-dot { background:#F3F4F6; font-size:12px; }
.tl-body  { flex:1; min-width:0; }
.tl-row   { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:4px; }
.tl-author{ font-size:13px; font-weight:500; color:var(--ink); }
.tl-meta  { display:flex; align-items:center; gap:7px; }
.tl-time  { font-size:11px; color:var(--muted); white-space:nowrap; }
.tl-del   { background:none; border:none; cursor:pointer; font-size:12px; color:#D1D5DB; padding:2px 5px; border-radius:5px; transition:all .12s; }
.tl-del:hover { color:var(--red); background:#FEF2F2; }
.tl-text  { font-size:13px; color:#4B5563; line-height:1.65; }
.tl-text strong { color:var(--ink); font-weight:500; }

/* ── SOURCE CHIP PICKER (add/edit modal) ── */
.src-picker { display:flex; flex-direction:column; gap:12px; margin-top:4px; }
.src-picker-lbl { font-size:10px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; margin-bottom:7px; }
.src-chips { display:flex; flex-wrap:wrap; gap:6px; }
.src-chip {
  display:inline-flex; align-items:center; gap:6px; padding:6px 13px; border-radius:999px;
  border:1.5px solid var(--border); cursor:pointer; font-size:12.5px; font-weight:400; color:#374151;
  background:var(--surf); transition:all .15s; font-family:var(--font); white-space:nowrap;
}
.src-chip:hover { border-color:var(--blue); color:var(--blue); background:var(--bluel); }
.src-chip.active { background:var(--blue); color:#fff; border-color:var(--blue); }

/* ── MODALS ── */
#crm-modal-bg,#crm-del-bg,#crm-edit-bg {
  position:fixed; inset:0; z-index:9500;
  background:rgba(0,0,0,.52);
  display:flex; align-items:center; justify-content:center; padding:20px;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
}
.admin-bar #crm-modal-bg,.admin-bar #crm-del-bg,.admin-bar #crm-edit-bg { top:32px; }
.modal { background:#fff; border-radius:16px; width:100%; max-width:600px; max-height:90vh; overflow-y:auto; box-shadow:var(--sh3); animation:mIn .2s cubic-bezier(.34,1.48,.64,1) both; }
.modal-sm { max-width:420px; }
@keyframes mIn { from{transform:scale(.93);opacity:0;} to{transform:scale(1);opacity:1;} }
.modal-head { display:flex; align-items:center; justify-content:space-between; padding:22px 26px 0; }
.modal-title { font-size:18px; font-weight:500; color:var(--ink); }
.modal-x { width:30px; height:30px; border-radius:7px; background:#F3F4F6; border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--sub); transition:all .15s; }
.modal-x:hover { background:#FEE2E2; color:var(--red); }
.modal-desc { font-size:13.5px; color:var(--sub); padding:10px 26px 0; line-height:1.65; }
.modal-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; padding:18px 26px; }
.mf { display:flex; flex-direction:column; gap:5px; }
.mf.mf-full { grid-column:1/-1; }
.mf label { font-size:12px; font-weight:500; color:#374151; }
.req { color:var(--red); }
.mf input,.mf select,.mf textarea { padding:9px 12px; border:1.5px solid rgba(0,0,0,.1); border-radius:var(--r); font-size:13.5px; font-family:var(--font); color:var(--ink); background:#FAFAFA; outline:none; transition:all .15s; }
.mf input:focus,.mf select:focus,.mf textarea:focus { border-color:var(--blue); background:#fff; box-shadow:0 0 0 3px var(--blued); }
.mf input.err { border-color:var(--red); box-shadow:0 0 0 3px rgba(220,38,38,.08); }
.modal-foot { display:flex; gap:9px; padding:6px 26px 26px; }
.btn-ok { padding:10px 24px; background:var(--ink); color:#fff; border:none; border-radius:var(--r); font-size:13.5px; font-weight:500; cursor:pointer; font-family:var(--font); transition:all .15s; }
.btn-ok:hover { background:var(--ink2); transform:translateY(-1px); }
.btn-ok:disabled { opacity:.4; cursor:not-allowed; transform:none; }
.btn-danger { padding:10px 24px; background:var(--red); color:#fff; border:none; border-radius:var(--r); font-size:13.5px; font-weight:500; cursor:pointer; font-family:var(--font); transition:all .15s; }
.btn-danger:hover { background:#B91C1C; }

/* ── RESPONSIVE ── */
@media(max-width:900px){
  #crm-popup { max-width:100%; border-radius:12px; }
  .pp-body { flex-direction:column; }
  .pp-l { width:100%; border-right:none; border-bottom:1px solid var(--border); }
}
@media(max-width:768px){
  .vl-inner { padding:20px 18px 48px; }
  .tb-nb span { display:none; }
  
  .ctrl-l { flex-direction:column; align-items:flex-start; }
  .modal-grid { grid-template-columns:1fr; }
}


/* ── POPUP CHIPS ── */
.pp-chips {
  display: flex; flex-wrap: wrap; gap: 6px;
}
.pp-chip {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 12px; border-radius: 999px;
  border: 1.5px solid var(--border); cursor: pointer;
  font-size: 12px; font-weight: 400; color: var(--sub);
  background: var(--white); transition: all .15s;
  font-family: var(--font); white-space: nowrap;
}
.pp-chip:hover  { border-color: var(--blue); color: var(--blue); background: var(--bluel); }
.pp-chip.active { background: var(--blue); color: #fff; border-color: var(--blue); }

.pp-save-btn {
  font-size: 11px; font-weight: 500; color: var(--blue);
  cursor: pointer; background: none; border: none;
  font-family: var(--font); padding: 0; text-transform: none; letter-spacing: 0;
}
.pp-save-btn:hover { opacity: .7; }

/* ── MODAL CHIPS ── */
.modal-chips {
  display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px;
}
.modal-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 13px; border-radius: 999px;
  border: 1.5px solid var(--border); cursor: pointer;
  font-size: 12.5px; font-weight: 400; color: #374151;
  background: #FAFAFA; transition: all .15s;
  font-family: var(--font); white-space: nowrap;
}
.modal-chip:hover  { border-color: var(--blue); color: var(--blue); background: var(--bluel); }
.modal-chip.active { background: var(--blue); color: #fff; border-color: var(--blue); }

/* ═══════════════════════════════════════════
   CRM v2.0 — NOWE STATUSY
═══════════════════════════════════════════ */

/* Spill dots — nowe statusy */
.s-proba_kontaktu    .spill-dot,.spill-dot.s-proba_kontaktu    { background:#F59E0B; }
.s-rozmowa_odbyta    .spill-dot,.spill-dot.s-rozmowa_odbyta    { background:#8B5CF6; }
.s-oferta_wyslana    .spill-dot,.spill-dot.s-oferta_wyslana    { background:#3B82F6; }
.s-follow_up         .spill-dot,.spill-dot.s-follow_up         { background:#06B6D4; }
.s-odroczony         .spill-dot,.spill-dot.s-odroczony         { background:#A78BFA; }
.s-sprzedany         .spill-dot,.spill-dot.s-sprzedany         { background:#16A34A; }
.s-czeka_transport   .spill-dot,.spill-dot.s-czeka_transport   { background:#EAB308; }
.s-niezainteresowany .spill-dot,.spill-dot.s-niezainteresowany { background:#9CA3AF; }

/* Status badges — nowe statusy */
.sbadge.s-proba_kontaktu    { background:#FFFBEB; color:#92400E; }
.sbadge.s-proba_kontaktu::before    { background:#F59E0B; }
.sbadge.s-rozmowa_odbyta    { background:#F5F3FF; color:#4C1D95; }
.sbadge.s-rozmowa_odbyta::before    { background:#8B5CF6; }
.sbadge.s-oferta_wyslana    { background:#EFF6FF; color:#1E40AF; }
.sbadge.s-oferta_wyslana::before    { background:#3B82F6; }
.sbadge.s-follow_up         { background:#ECFEFF; color:#164E63; }
.sbadge.s-follow_up::before         { background:#06B6D4; }
.sbadge.s-odroczony         { background:#FAF5FF; color:#6B21A8; }
.sbadge.s-odroczony::before         { background:#A78BFA; }
.sbadge.s-sprzedany         { background:#DCFCE7; color:#14532D; }
.sbadge.s-sprzedany::before         { background:#16A34A; }
.sbadge.s-czeka_transport   { background:#FEFCE8; color:#713F12; }
.sbadge.s-czeka_transport::before   { background:#EAB308; }
.sbadge.s-niezainteresowany { background:#F9FAFB; color:#4B5563; }
.sbadge.s-niezainteresowany::before { background:#9CA3AF; }

/* Pipeline stepper — nowe kolory */
.pn-step[data-s="sprzedany"].cur     .pn-step-dot { background:var(--green);  border-color:var(--green);  box-shadow:0 0 0 4px rgba(22,163,74,.15); }
.pn-step[data-s="sprzedany"].cur     .pn-step-lbl { color:var(--green); }
.pn-step[data-s="niezainteresowany"].cur .pn-step-dot { background:var(--red); border-color:var(--red); box-shadow:0 0 0 4px rgba(220,38,38,.15); }
.pn-step[data-s="niezainteresowany"].cur .pn-step-lbl { color:var(--red); }
.pn-step[data-s="czeka_transport"].cur .pn-step-dot { background:#EAB308; border-color:#EAB308; box-shadow:0 0 0 4px rgba(234,179,8,.15); }
.pn-step[data-s="czeka_transport"].cur .pn-step-lbl { color:#854D0E; }

/* ═══════════════════════════════════════════
   NASTĘPNY KONTAKT — badge w tabeli i popup
═══════════════════════════════════════════ */
.nca-badge {
  display:inline-flex; align-items:center; gap:4px;
  font-size:12px; font-weight:500;
  padding:3px 9px; border-radius:6px;
  background:#EFF6FF; color:#1E40AF;
  border:1px solid rgba(37,99,235,.15);
  white-space:nowrap;
}
.nca-badge.overdue {
  background:#FEF2F2; color:#991B1B;
  border-color:rgba(220,38,38,.2);
  animation:pulse-red 1.5s ease-in-out infinite;
}
@keyframes pulse-red {
  0%,100% { box-shadow:none; }
  50% { box-shadow:0 0 0 3px rgba(220,38,38,.15); }
}
.nca-display { margin-top:4px; }

/* ═══════════════════════════════════════════
   MODAL: PRÓBA KONTAKTU
═══════════════════════════════════════════ */
#crm-attempt-bg, #crm-deferred-bg {
  position:fixed; inset:0; z-index:9500;
  background:rgba(0,0,0,.52);
  display:flex; align-items:center; justify-content:center; padding:20px;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
}
.admin-bar #crm-attempt-bg, .admin-bar #crm-deferred-bg { top:32px; }

.attempt-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:10px; padding:16px 26px 8px;
}
.attempt-btn {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:8px; padding:16px 12px;
  border:2px solid var(--border); border-radius:var(--r2);
  background:var(--white); cursor:pointer;
  font-family:var(--font); font-size:13px; font-weight:500; color:var(--ink);
  transition:all .15s; line-height:1.3;
}
.attempt-btn:first-child { font-size:22px; }
.attempt-btn span { font-size:12.5px; font-weight:500; }
.attempt-btn:hover { border-color:var(--blue); background:var(--bluel); color:var(--blue); transform:translateY(-2px); box-shadow:var(--sh2); }
.attempt-btn.selected { border-color:var(--blue); background:var(--blue); color:#fff; }
.attempt-btn--green:hover  { border-color:var(--green); background:#DCFCE7; color:var(--green); }
.attempt-btn--green.selected { background:var(--green); border-color:var(--green); color:#fff; }
.attempt-btn--blue:hover   { border-color:#7C3AED; background:#FAF5FF; color:#7C3AED; }
.attempt-btn--blue.selected { background:#7C3AED; border-color:#7C3AED; color:#fff; }
.attempt-btn--red:hover    { border-color:var(--red); background:#FEF2F2; color:var(--red); }
.attempt-btn--red.selected { background:var(--red); border-color:var(--red); color:#fff; }

/* ═══════════════════════════════════════════
   AKCJE KONTEKSTOWE W POPUP
═══════════════════════════════════════════ */
.action-btn {
  display:block; width:100%;
  padding:10px 14px; margin-bottom:7px;
  border:1.5px solid var(--border); border-radius:var(--r);
  background:var(--white); cursor:pointer;
  font-family:var(--font); font-size:12.5px; font-weight:500; color:var(--ink);
  text-align:left; transition:all .15s;
}
.action-btn:hover { border-color:var(--blue); color:var(--blue); background:var(--bluel); }
.action-btn:last-of-type { margin-bottom:0; }
.action-btn--green:hover { border-color:var(--green); color:var(--green); background:#DCFCE7; }
.action-btn--purple:hover { border-color:#7C3AED; color:#7C3AED; background:#FAF5FF; }
.action-btn--gray { color:var(--sub); }
.action-btn--gray:hover { border-color:var(--red); color:var(--red); background:#FEF2F2; }

.attempts-info {
  font-size:11.5px; color:var(--sub);
  padding:6px 10px; background:#F3F4F6;
  border-radius:6px; margin-top:6px;
  text-align:center;
}
.bad-number-badge {
  font-size:11.5px; color:#991B1B;
  padding:6px 10px; background:#FEF2F2;
  border:1px solid rgba(220,38,38,.2); border-radius:6px;
  margin-top:6px; text-align:center;
}

/* ═══════════════════════════════════════════
   SRC TAG — spółka transportowa
═══════════════════════════════════════════ */
.src-spolka_transportowa { background:#FFF7ED; color:#C2410C; border-color:rgba(194,65,12,.2); }

/* ═══════════════════════════════════════════
   MODAL: FOLLOW-UP DNI
═══════════════════════════════════════════ */
#crm-followup-bg {
  position:fixed; inset:0; z-index:9500;
  background:rgba(0,0,0,.52);
  display:flex; align-items:center; justify-content:center; padding:20px;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
}
.admin-bar #crm-followup-bg { top:32px; }

.followup-days-grid {
  display:flex; gap:10px; padding:16px 26px 26px;
  justify-content:center; flex-wrap:wrap;
}
.followup-day-btn {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:4px; padding:18px 14px; min-width:80px;
  border:2px solid var(--border); border-radius:var(--r2);
  background:var(--white); cursor:pointer;
  font-family:var(--font); transition:all .15s;
}
.followup-day-btn:hover {
  border-color:#06B6D4; background:#ECFEFF; color:#164E63;
  transform:translateY(-3px); box-shadow:var(--sh2);
}
.followup-day-btn:first-child { font-size:28px; font-weight:700; color:var(--ink); }
.followup-day-btn span {
  font-size:10px; font-weight:500; color:var(--sub);
  text-transform:uppercase; letter-spacing:.05em; line-height:1.2; text-align:center;
}
.followup-day-btn:hover span { color:#0E7490; }

/* ═══════════════════════════════════════════
   PAGINACJA
═══════════════════════════════════════════ */
.pagination {
  display:inline-flex; align-items:center; gap:6px;
  margin-top:20px; flex-wrap:wrap;
  width:100%;
}
.pg-btn {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:36px; height:36px; padding:0 12px;
  border:1.5px solid var(--border); border-radius:var(--r);
  background:var(--white); color:var(--sub);
  font-size:13px; font-weight:400; font-family:var(--font);
  text-decoration:none; transition:all .15s;
  box-shadow:var(--sh1); white-space:nowrap;
}
.pg-btn:hover { border-color:var(--blue); color:var(--blue); background:var(--bluel); }
.pg-btn.active {
  background:var(--ink); color:#fff; border-color:var(--ink);
  font-weight:500;
}
.pg-info {
  font-size:12px; color:var(--muted);
  margin-left:8px; white-space:nowrap;
}
