:root{
  --bg:#f4f6fb;--panel:#fff;--ink:#1b2236;--muted:#6b7389;--line:#e3e7f0;
  --brand:#2b3fd6;--brand-2:#1f2fa8;--wa:#1faa59;--danger:#d33a3a;--warn:#c77700;
  --s-new:#7b8494;--s-call1:#3b82f6;--s-call2:#2563eb;--s-call3:#1d4ed8;--s-ind:#8b5cf6;--s-econf:#f59e0b;--s-enr:#16a34a;--s-lost:#b91c1c;
  --radius:10px;font-size:15px
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;line-height:1.45}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:1.45rem;margin:0}h2{font-size:1.02rem;margin:0 0 .8rem}h3{margin:0 0 .8rem}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:1.2rem;padding:.6rem 1.2rem;background:#121a3a;color:#fff}
.brand{color:#fff;font-weight:800;font-size:1.15rem;letter-spacing:.2px;white-space:nowrap}.brand span,.brand-lg span{color:#8fa0ff}
.nav{display:flex;gap:.2rem;flex:1;overflow-x:auto}
.nav a{color:#c9d0ee;padding:.45rem .7rem;border-radius:8px;white-space:nowrap}.nav a:hover{background:#ffffff14;text-decoration:none}.nav a.on{background:#ffffff22;color:#fff}
.who{font-size:.85rem;color:#c9d0ee;white-space:nowrap}.who a{color:#fff}
.wrap{max-width:1320px;margin:0 auto;padding:1.2rem 1.2rem 5rem}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem;margin-bottom:1rem}
.panel.narrow{max-width:480px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.grid2>*{min-width:0}
.lead-grid{grid-template-columns:1.15fr 1fr}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.8rem;margin-bottom:1rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1rem;color:var(--ink);display:flex;flex-direction:column}
.card:hover{border-color:var(--brand);text-decoration:none}.card b{font-size:1.8rem;line-height:1.1}.card span{color:var(--muted);font-size:.88rem}
.card.warn b{color:var(--danger)}
.count{background:#eef0fb;color:var(--brand);border-radius:20px;padding:.05rem .55rem;font-size:.85rem;font-weight:600;vertical-align:middle}
.sub{color:var(--muted);font-size:.83rem}.muted{color:var(--muted)}
.late{color:var(--danger);font-weight:600}.due{color:var(--warn);font-weight:600}
.empty{color:var(--muted);text-align:center;padding:1rem}
/* buttons + forms */
.btn{display:inline-block;border:1px solid var(--line);background:#fff;color:var(--ink);padding:.48rem .9rem;border-radius:8px;font:inherit;font-weight:600;cursor:pointer;white-space:nowrap;line-height:1.2}
.btn:hover{border-color:#b9c1d8;text-decoration:none}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-2)}
.btn.wa{background:var(--wa);border-color:var(--wa);color:#fff}
.btn.danger{background:#fff;border-color:var(--danger);color:var(--danger)}
.btn.ghost{background:transparent}.btn.sm{padding:.3rem .6rem;font-size:.82rem}.btn.block{width:100%}
.top .btn.add{padding:.42rem .8rem}
label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.7rem}
input,select,textarea{display:block;width:100%;margin-top:.25rem;padding:.5rem .6rem;border:1px solid #cfd5e3;border-radius:8px;font:inherit;color:var(--ink);background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid #c7cffc;border-color:var(--brand)}
label.check{display:flex;gap:.5rem;align-items:center;color:var(--ink)}label.check input{width:auto;margin:0}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 .9rem}
.row-btns{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.inline{display:inline-flex;gap:.5rem;align-items:center}.inline select{width:auto;margin:0}
.inline-label{display:flex;align-items:center;gap:.4rem;margin:0}.inline-label input{width:auto;margin:0}
details.more summary{cursor:pointer;color:var(--brand);font-size:.88rem;margin-bottom:.6rem}
.alert{padding:.7rem .9rem;border-radius:8px;margin-bottom:1rem;background:#e9f8ef;border:1px solid #bfe8cf}
.alert.err{background:#fdecec;border-color:#f5c2c2}.alert.warn{background:#fff6e5;border-color:#f6dca6}
/* filters */
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.8rem}
.filters input,.filters select{width:auto;margin:0;min-width:130px}.filters input[type=search]{flex:1;min-width:220px}
.bulkbar{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;background:#eef0fb;border-radius:8px;padding:.5rem .7rem;margin-bottom:.6rem}
.bulkbar select{width:auto;margin:0}
/* tables */
.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.panel .table-wrap{border:0}
.tbl{width:100%;border-collapse:collapse}
.tbl th{text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:.6rem .7rem;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:.6rem .7rem;border-bottom:1px solid #eef1f6;vertical-align:top}
.tbl tr:last-child td{border-bottom:0}.tbl tr:hover td{background:#fafbff}
.tbl td.actions{white-space:nowrap;text-align:right}.tbl td.actions .btn{margin-left:.3rem}
.lead-link{font-weight:600}
.pager{display:flex;gap:1rem;align-items:center;justify-content:center;margin:1rem 0}
/* badges */
.badge{display:inline-block;font-size:.74rem;font-weight:700;padding:.12rem .5rem;border-radius:20px;background:#eef0f4;color:#4a5268;white-space:nowrap}
.st-new{background:#eef0f4;color:var(--s-new)}.st-call1{background:#e6efff;color:var(--s-call1)}.st-call2{background:#dde8ff;color:var(--s-call2)}.st-call3{background:#d3e0ff;color:var(--s-call3)}
.st-induction_confirmed{background:#efe8ff;color:var(--s-ind)}.st-enrolment_confirmed{background:#fff2d9;color:#b46d00}.st-enrolled{background:#e1f6e8;color:var(--s-enr)}.st-lost{background:#fde7e7;color:var(--s-lost)}
.in-hot{background:#ffe3e3;color:#c01d1d}.in-warm{background:#fff0d6;color:#b06200}.in-cold{background:#e2f0ff;color:#1d5fb0}
/* funnel */
.funnel{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.6rem}
.frow{display:grid;grid-template-columns:170px 1fr 60px;gap:.7rem;align-items:center;color:var(--ink)}.frow:hover{text-decoration:none}.frow:hover .fl{color:var(--brand)}
.fl{font-size:.88rem}.fn{text-align:right;font-weight:700}
.fb{background:#f0f2f8;border-radius:6px;height:20px;overflow:hidden}.fb i{display:block;height:100%;border-radius:6px;min-width:2px}
.fb i.st-new{background:var(--s-new)}.fb i.st-call1{background:var(--s-call1)}.fb i.st-call2{background:var(--s-call2)}.fb i.st-call3{background:var(--s-call3)}
.fb i.st-induction_confirmed{background:var(--s-ind)}.fb i.st-enrolment_confirmed{background:var(--s-econf)}.fb i.st-enrolled{background:var(--s-enr)}.fb i.st-lost{background:var(--s-lost)}
/* lead page */
.lead-head{align-items:flex-start}.head-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.dropdown{position:relative;display:inline-flex}.dropdown .btn.wa:first-child{border-radius:8px 0 0 8px}.dropdown .caret{border-radius:0 8px 8px 0;border-left:1px solid #ffffff55;padding:.48rem .55rem}
.menu{display:none;position:absolute;right:0;top:110%;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #0002;min-width:220px;z-index:30}
.menu.open{display:block}.menu a{display:block;padding:.55rem .8rem;color:var(--ink)}.menu a:hover{background:#f3f5fc;text-decoration:none}
.steps{display:flex;gap:2px;margin-bottom:1rem;overflow-x:auto}
.step{flex:1;margin:0}.step button{width:100%;border:0;background:#e6e9f2;color:#4a5268;padding:.55rem .4rem;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap}
.step:first-child button{border-radius:8px 0 0 8px}.step:last-child button{border-radius:0 8px 8px 0}
.step.on button{background:var(--brand);color:#fff}.step button:hover{filter:brightness(.95)}
.calls-so-far{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.7rem}
.callpill{font-size:.8rem;background:#f0f2f8;border-radius:20px;padding:.15rem .6rem;color:var(--muted)}.callpill.done{background:#e6efff;color:#1d4ed8}
.outcomes{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.8rem}
.chip{margin:0;cursor:pointer}.chip input{display:none}
.chip span{display:inline-block;border:1px solid #cfd5e3;border-radius:20px;padding:.32rem .7rem;font-size:.84rem;color:var(--ink);background:#fff}
.chip input:checked+span{background:var(--brand);border-color:var(--brand);color:#fff}
.quick-dates{display:flex;gap:.3rem;margin-top:.3rem}.quick-dates button{border:1px solid var(--line);background:#fff;border-radius:6px;font-size:.78rem;padding:.15rem .45rem;cursor:pointer}
.show-positive,.show-lost{display:none!important}.callform.positive .show-positive,.callform.lostish .show-lost{display:flex!important}
.lost-only{display:none}.stageform.lost .lost-only{display:block}
.timeline{list-style:none;margin:0;padding:0}
.timeline li{border-left:3px solid var(--line);padding:.2rem 0 .8rem .8rem;margin-left:.3rem}
.timeline li.t-call{border-color:var(--s-call1)}.timeline li.t-whatsapp{border-color:var(--wa)}.timeline li.t-stage{border-color:var(--s-ind)}.timeline li.t-note{border-color:var(--s-econf)}
.t-head{display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.t-body{white-space:normal;margin-top:.2rem;font-size:.92rem}
.dup ul{margin:.4rem 0 0;padding-left:1.2rem}
.tpl{border-bottom:1px solid var(--line);padding:.6rem 0}.tpl .t-body{color:#3b435a;margin:.3rem 0 .5rem}
/* kanban */
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,1fr);gap:.7rem;overflow-x:auto;padding-bottom:.5rem}
.col{background:#e9ecf4;border-radius:var(--radius);display:flex;flex-direction:column;max-height:calc(100vh - 220px);min-height:200px}
.col.over{outline:2px dashed var(--brand)}
.col-head{border-radius:var(--radius) var(--radius) 0 0;padding:.55rem .7rem;font-weight:700;font-size:.88rem;display:flex;justify-content:space-between}
.col-body{overflow-y:auto;padding:.5rem;display:flex;flex-direction:column;gap:.45rem}
.kcard{background:#fff;border-radius:8px;padding:.55rem .65rem;border:1px solid var(--line);cursor:grab;font-size:.9rem}
.kcard.dragging{opacity:.5}.kcard a{font-weight:600}
.more-link{text-align:center;font-size:.85rem;padding:.3rem}
.modal{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:50}
.modal[hidden]{display:none}.modal-box{background:#fff;border-radius:var(--radius);padding:1.2rem;width:min(360px,92vw)}.modal-box select{margin-bottom:1rem}
/* login */
.login-body{display:flex;min-height:100vh;align-items:center;justify-content:center;background:linear-gradient(135deg,#121a3a,#2b3fd6)}
.login-card{background:#fff;padding:2rem;border-radius:14px;width:min(380px,92vw);box-shadow:0 20px 60px #0004}
.brand-lg{font-size:1.6rem;font-weight:800;color:#121a3a}.brand-lg span{color:var(--brand)}
.bottomnav{display:none}
@media (max-width:860px){
  .grid2,.lead-grid{grid-template-columns:1fr}
  .top{flex-wrap:wrap;gap:.6rem;padding:.55rem .8rem}.nav{order:3;flex-basis:100%}.who{margin-left:auto}.top .btn.add{display:none}
  .wrap{padding:.8rem .7rem 5.5rem}
  .frow{grid-template-columns:120px 1fr 44px}
  .tbl.leads th:nth-child(n+5),.tbl.leads td:nth-child(n+5){display:none}
  .tbl.leads td.actions{display:table-cell}
  .bottomnav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);z-index:30;padding:.3rem 0 calc(.3rem + env(safe-area-inset-bottom))}
  .bottomnav a{flex:1;text-align:center;font-size:.8rem;color:var(--ink);padding:.45rem 0}
  .bottomnav a.plus{font-size:1.5rem;line-height:1;color:#fff;background:var(--brand);border-radius:50%;flex:0 0 46px;height:46px;margin:-14px 6px 0;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #2b3fd666}
  .board{grid-auto-columns:80vw}
}
