:root{
  --brand:#1f4fd8; --brand-dark:#173ca6; --brand-soft:#eaf0ff;
  --ink:#172033; --muted:#6b7488; --line:#e5e8ef; --bg:#f4f6fa; --card:#fff;
  --radius:14px;
}
body{background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14.5px}
a{color:var(--brand)}
.text-brand{color:var(--brand)!important}
.bg-soft{background:#fafbfd}
.min-w-0{min-width:0}

/* nav */
.app-nav{background:#fff;border-bottom:1px solid var(--line)}
.app-nav .nav-link{color:var(--muted);font-weight:500;border-radius:8px;padding:.45rem .8rem!important}
.app-nav .nav-link:hover{color:var(--ink);background:var(--bg)}
.app-nav .nav-link.active{color:var(--brand);background:var(--brand-soft)}
.brand-mark{width:34px;height:34px;border-radius:9px;background:var(--brand);color:#fff;display:inline-grid;place-items:center;font-size:1.05rem}
.brand-mark-lg{width:56px;height:56px;border-radius:14px;font-size:1.6rem}

.btn-brand{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.btn-brand:hover,.btn-brand:focus{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}
.chip{background:var(--bg);border:1px solid var(--line);border-radius:20px;padding:.2rem .7rem;font-size:.8rem}

/* stats */
.stat-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.75rem}
.stat{background:#fff;border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:12px;padding:.75rem 1rem;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;transition:.15s}
.stat:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(20,30,60,.06)}
.stat.active{background:var(--brand-soft);border-color:var(--brand)}
.stat-num{font-size:1.45rem;font-weight:700;line-height:1.1}
.stat-label{font-size:.78rem;color:var(--muted)}
.stat-secondary{border-left-color:#8a93a6}.stat-info{border-left-color:#0dcaf0}.stat-warning{border-left-color:#ffc107}
.stat-primary{border-left-color:#0d6efd}.stat-success{border-left-color:#198754}.stat-danger{border-left-color:#dc3545}

/* card grid */
.lead-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}
.lead-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden;transition:box-shadow .15s,border-color .15s;position:relative}
.lead-card::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:#c6ccd8}
.lead-card.status-called::before{background:#0dcaf0}.lead-card.status-followup::before{background:#ffc107}
.lead-card.status-meeting::before{background:#0d6efd}.lead-card.status-converted::before{background:#198754}
.lead-card.status-not_int::before{background:#dc3545}
.lead-card:hover{box-shadow:0 8px 24px rgba(20,30,60,.08);border-color:#d4d9e4}
.lead-card.selected{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}

.lead-head{display:flex;gap:.7rem;align-items:flex-start;padding:1.1rem 1rem .5rem}
.lead-head .row-check{flex:none;margin:.9rem 0 0}
.avatar{flex:none;width:44px;height:44px;border-radius:12px;background:var(--brand-soft);color:var(--brand);font-weight:700;display:grid;place-items:center}
.lead-name{font-size:1.02rem;font-weight:700;margin:0;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lead-sub{font-size:.82rem;color:var(--muted)}
.sno{flex:none;font-size:.72rem;font-weight:600;color:var(--muted);background:var(--bg);border-radius:6px;padding:.05rem .4rem}
.star-btn{border:0;background:none;color:#c2c8d4;font-size:1.15rem;padding:.2rem}
.star-btn.on,.star-btn:hover{color:#f5b301}

.lead-meta{display:flex;flex-wrap:wrap;gap:.4rem;padding:0 1rem .6rem;align-items:center}
.status-pill{font-size:.72rem;font-weight:600;padding:.35em .75em}
.meta-chip{font-size:.75rem;background:var(--bg);border-radius:20px;padding:.2rem .6rem;color:#3d475c}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.5rem}

.lead-info{list-style:none;margin:0;padding:.2rem 1rem .6rem;font-size:.86rem}
.lead-info li{display:flex;gap:.55rem;padding:.22rem 0;min-width:0}
.lead-info i{color:var(--muted);flex:none;margin-top:1px}
.lead-info a{text-decoration:none;min-width:0}
.lead-info a:hover{text-decoration:underline}

.lead-block{margin:0 1rem .6rem;padding:.6rem .75rem;background:#fafbfd;border:1px solid var(--line);border-radius:10px;font-size:.84rem}
.lead-block.calling{background:#fffdf5;border-color:#f3e8c3}
.block-label{font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:.25rem}
.btn-link-sm{border:0;background:none;color:var(--brand);font-size:.72rem;font-weight:600;text-transform:none;letter-spacing:0;padding:0}
.clamp-2,.clamp-3{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}
.clamp-2{-webkit-line-clamp:2}.clamp-3{-webkit-line-clamp:3}
.clamp-3.open{-webkit-line-clamp:unset}
.meeting{margin:0 1rem .7rem;padding:.5rem .75rem;border-radius:10px;background:var(--brand-soft);color:var(--brand-dark);font-size:.84rem}

.lead-actions{margin-top:auto;display:flex;gap:.35rem;padding:.6rem .8rem;border-top:1px solid var(--line);background:#fcfcfe}
.act{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;border:1px solid var(--line);background:#fff;color:#475066;text-decoration:none;transition:.15s}
.act:hover{background:var(--brand);color:#fff;border-color:var(--brand)}
.act-wa:hover{background:#25d366;border-color:#25d366}
.act-del:hover{background:#dc3545;border-color:#dc3545}

/* upload */
.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:2px dashed #c9d3ea;border-radius:12px;padding:2.5rem 1rem;cursor:pointer;background:#fafcff;transition:.15s}
.dropzone:hover,.dropzone.drag{border-color:var(--brand);background:var(--brand-soft)}
.map-table th{min-width:170px;background:#fafbfd;vertical-align:top;font-weight:400}
.map-table select.is-mapped{border-color:#198754;background-color:#f2fbf5}
.list-table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#fafbfd;white-space:nowrap}

.form-section{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.8rem}
.login-page{min-height:100vh;background:linear-gradient(135deg,#eef3ff,#f7f8fb)}
.login-card{width:100%;max-width:380px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:2rem;margin:1rem;box-shadow:0 20px 50px rgba(20,40,100,.08)}

@media (max-width:576px){
  .lead-grid{grid-template-columns:1fr}
  .stat-row{grid-template-columns:repeat(3,1fr);gap:.5rem}
  .stat{padding:.55rem .65rem}.stat-num{font-size:1.15rem}
}
@media print{
  .app-nav,.toolbar,.stat-row,#bulkForm>.d-flex,.lead-actions,.row-check,.pagination{display:none!important}
  .lead-grid{grid-template-columns:repeat(2,1fr)}
  .lead-card{break-inside:avoid}
}
