:root{
  --red:#d52b1e; --red-dk:#b21f14; --ink:#1d2330; --muted:#7a8499;
  --line:#e6e9f0; --bg:#f5f7fb; --card:#fff; --ok:#138a4a; --okbg:#e7f6ed;
  --shadow:0 1px 3px rgba(20,30,60,.08),0 8px 24px rgba(20,30,60,.06);
  --radius:14px;
}
*{box-sizing:border-box}
body{margin:0;font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--red-dk);text-decoration:none}
a:hover{text-decoration:underline}
.hidden{display:none!important}
.muted{color:var(--muted)}
.nowrap{white-space:nowrap}

/* top bar */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.brand{font-weight:800;font-size:18px;letter-spacing:-.2px}
.brand span{color:var(--red);font-weight:800}
.logout{font-size:13px;color:var(--muted)}

.wrap{max-width:1180px;margin:22px auto;padding:0 18px;display:flex;flex-direction:column;gap:18px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}

/* search */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
.fld{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:13px;color:#42506a}
.fld .hint{font-weight:400;color:var(--muted)}
select,input[type=text],input[type=number],input:not([type]){padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:14px;background:#fff;color:var(--ink);width:100%}
select:focus,input:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(213,43,30,.12)}
.row2{display:flex;align-items:center;gap:18px;margin-top:14px;flex-wrap:wrap}
.src{display:flex;align-items:center;gap:14px;font-size:14px}
.src>span{font-weight:600;color:#42506a}
.src label,.chk{display:flex;align-items:center;gap:6px;font-size:14px;cursor:pointer}
.src em,.chk em{font-style:normal;color:var(--muted);font-size:12px}
.chk{margin-left:auto}
.note{margin:12px 0 0;font-size:12.5px;color:var(--muted)}

button,.ghost{font:inherit;cursor:pointer;border-radius:10px;padding:10px 18px;border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:600}
button.primary{background:var(--red);border-color:var(--red);color:#fff}
button.primary:hover{background:var(--red-dk)}
button:disabled{opacity:.55;cursor:default}
.ghost:hover{border-color:var(--red);color:var(--red-dk);text-decoration:none}

/* status */
.status .statusline{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
#statusText{font-weight:700}
.counts{color:var(--muted);font-size:13px}
.bar{height:8px;background:#eef1f7;border-radius:99px;overflow:hidden}
#barFill{height:100%;width:0;background:linear-gradient(90deg,var(--red),#ff6a5e);transition:width .4s ease}
#barFill.done{background:var(--ok)}
#barFill.err{background:#9aa3b2}
.status .actions{display:flex;gap:10px;margin-top:14px}

/* results */
table.results{width:100%;border-collapse:collapse;font-size:13.5px}
.results th,.results td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.results th{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);position:sticky;top:0;background:var(--card)}
.results tbody tr:hover{background:#fafbfe}
.results td.addr{max-width:280px;color:#52607a}
.results td:nth-child(2){font-weight:600}

/* recent */
.recentH{margin:0 0 12px;font-size:15px}
.recent{display:flex;flex-direction:column;gap:2px}
.recent-row{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:8px;cursor:pointer}
.recent-row:hover{background:#f2f5fb}
.rw-where{font-weight:600}
.rw-meta{font-size:12.5px;color:var(--muted);display:flex;gap:8px;align-items:center}
.badge{font-size:11px;padding:2px 8px;border-radius:99px;background:#eef1f7;color:#5a6b85;text-transform:capitalize}
.badge.done{background:var(--okbg);color:var(--ok)}
.badge.running,.badge.queued{background:#fff3e0;color:#a35200}
.badge.error{background:#fde8e6;color:var(--red-dk)}

/* login */
.login-body{display:grid;place-items:center;min-height:100vh}
.login-card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:30px;width:min(380px,92vw);display:flex;flex-direction:column;gap:12px}
.login-card h1{margin:0;font-size:20px}
.login-card .sub{margin:0 0 6px;color:var(--muted);font-size:13px}
.login-card label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:#42506a}
.login-card button{background:var(--red);border-color:var(--red);color:#fff;margin-top:6px}
.login-card .err{background:#fde8e6;color:var(--red-dk);padding:8px 12px;border-radius:8px;font-size:13px;margin:0}

@media(max-width:760px){
  .search .grid{grid-template-columns:1fr 1fr}
  .chk{margin-left:0}
  .results td.addr{max-width:160px}
}

/* ---- CRM additions ---- */
.panel-h{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.panel-h h3{margin:0;font-size:15px}
.panel-h .muted{font-weight:400;font-size:12.5px}
.exports{display:flex;gap:8px}
.status{margin-top:14px}

.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.filters .f{width:auto;min-width:150px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;font-size:13px;background:#fff;color:var(--ink)}
.filters .search{flex:1;min-width:200px}

.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.chip{font-size:12.5px;background:#f1f4fa;border:1px solid var(--line);padding:4px 10px;border-radius:99px}
.chip[data-filter]{cursor:pointer}
.chip[data-filter]:hover{border-color:var(--red)}
.chip.tot{background:#e9eefb;border-color:#cdd9f5}
.chip.c-green{background:var(--okbg);border-color:#bfe6cd}
.chip.c-yellow{background:#fff6e0;border-color:#f0dca5}
.chip.c-red{background:#fde8e6;border-color:#f3c2bd}

.tablewrap{overflow-x:auto}
.results{min-width:1120px}
.results td{vertical-align:middle}
.co .seen{font-size:11px;color:var(--muted);margin-left:4px}

.callbtn{display:inline-block;background:var(--ok);color:#fff;border-radius:8px;padding:5px 10px;font-size:12.5px;font-weight:600;white-space:nowrap}
.callbtn:hover{text-decoration:none;filter:brightness(.94)}
.calledat{font-size:11px;color:var(--ok);margin-top:3px}

select.st{padding:5px 6px;border-radius:7px;border:1px solid var(--line);font-size:12.5px;background:#fff}
.st-called,.st-converted{color:var(--ok);font-weight:600}
.st-not_interested{color:var(--red-dk)}
.st-callback,.st-no_answer{color:#a35200}

.suitcell{white-space:nowrap}
.suitbtn{width:27px;height:27px;border-radius:7px;border:1px solid var(--line);background:#fff;cursor:pointer;font-weight:700;margin-right:3px;line-height:1;color:#8893a7}
.suitbtn:hover{border-color:#aab4c6}
.suitbtn.default.on{background:var(--ok);color:#fff;border-color:var(--ok)}
.suitbtn.maybe.on{background:#f0a500;color:#fff;border-color:#f0a500}
.suitbtn.red.on{background:var(--red);color:#fff;border-color:var(--red)}

input.remarks{width:180px;padding:6px 8px;border:1px solid var(--line);border-radius:7px;font-size:12.5px}
input.remarks:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(213,43,30,.1)}
input.fup{padding:5px 6px;border:1px solid var(--line);border-radius:7px;font-size:12px}

tr.suit-red{background:#fdf1f0}
tr.suit-red:hover{background:#fbe6e3}
tr.suit-maybe{background:#fffaef}
tr.suit-maybe:hover{background:#fdf3dd}

/* ---- nav tabs ---- */
.topbar{gap:14px}
.tabs{display:flex;gap:6px;flex:1}
.tab{background:transparent;border:1px solid transparent;border-radius:9px;padding:7px 14px;font-weight:600;color:#5a6b85;cursor:pointer;font-size:14px}
.tab:hover{background:#f2f5fb}
.tab.on{background:#fff;border-color:var(--line);color:var(--ink);box-shadow:var(--shadow)}
.view.hidden{display:none}

/* ---- notice bar (animated) ---- */
.notice{display:flex;align-items:center;gap:12px;padding:11px 18px;background:#eef2fb;border-bottom:1px solid var(--line);font-size:14px}
.notice.hidden{display:none}
.notice .nb-ico{font-size:18px}
.notice .nb-txt{flex:1}
.notice .nb-cd{font-weight:700}
.notice .nb-x{background:transparent;border:none;color:inherit;cursor:pointer;font-size:15px;opacity:.55;padding:2px 8px}
.notice .nb-x:hover{opacity:1}
.notice.soon{background:#fff4e0;border-bottom-color:#f0dca5;animation:noticeGlow 2.4s ease-in-out infinite}
.notice.imminent{background:#fde8e6;border-bottom-color:#f3c2bd;color:#7a1610;animation:noticePulse 1.3s ease-in-out infinite}
.notice.imminent .nb-cd{color:var(--red-dk)}
@keyframes noticeGlow{0%,100%{box-shadow:inset 0 0 0 rgba(240,165,0,0)}50%{box-shadow:inset 0 -3px 0 0 rgba(240,165,0,.6)}}
@keyframes noticePulse{0%,100%{background:#fde8e6}50%{background:#fbd2cd}}

/* ---- meetings form ---- */
.suggest{position:absolute;top:100%;left:0;right:0;z-index:30;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);max-height:240px;overflow:auto;margin-top:4px}
.suggest.hidden{display:none}
.suggest .sg{padding:8px 12px;cursor:pointer;display:flex;flex-direction:column;gap:1px}
.suggest .sg:hover{background:#f2f5fb}
.suggest .sg span{font-size:12px;color:var(--muted)}

/* ---- meetings table ---- */
.mfilters{display:flex;gap:6px}
.mf{background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600;color:#5a6b85;cursor:pointer}
.mf.on{background:var(--red);border-color:var(--red);color:#fff}
.results.meetings{min-width:980px}
.mstatus{font-size:11.5px;padding:3px 9px;border-radius:99px;text-transform:capitalize;background:#eef1f7;color:#5a6b85}
.mstatus.scheduled{background:#fff3e0;color:#a35200}
.mstatus.done{background:var(--okbg);color:var(--ok)}
.mstatus.cancelled{background:#fde8e6;color:var(--red-dk)}
tr.m-cancelled{opacity:.6}
.macts{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.mini{font-size:12px;padding:4px 9px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);cursor:pointer;text-decoration:none}
.mini:hover{border-color:var(--red);color:var(--red-dk);text-decoration:none}
.schedbtn{margin-top:4px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:3px 7px;cursor:pointer;font-size:13px;line-height:1}
.schedbtn:hover{border-color:var(--red)}

@media(max-width:760px){
  .tabs{margin-left:0}
  .notice{flex-wrap:wrap;font-size:13px}
}

/* ---- keywords (multi-select checkboxes) ---- */
.kwblock{margin-top:14px}
.kwlabel{font-weight:600;font-size:13px;color:#42506a;margin-bottom:8px}
.kwlabel .hint{font-weight:400}
.kwchecks{display:flex;flex-wrap:wrap;gap:8px}
.kwchk{display:inline-flex;align-items:center;gap:7px;background:#f4f6fb;border:1px solid var(--line);border-radius:99px;padding:7px 13px;font-size:13px;cursor:pointer;user-select:none}
.kwchk:hover{border-color:#c9d3e6}
.kwchk input{accent-color:var(--red);margin:0;width:15px;height:15px}
.kwchk:has(input:checked){background:#fde8e6;border-color:#f0b9b3;color:var(--red-dk);font-weight:600}
.kwadd{display:flex;gap:8px;margin-top:10px}
.kwadd input{flex:1;min-width:150px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;font-size:13px}
.kwadd .ghost{white-space:nowrap}

/* keyword filter dropdown (leads filter bar) */
.kwfilter{position:relative;display:inline-block}
.kwfbtn{cursor:pointer;background:#fff;white-space:nowrap}
.kwfbtn.active{border-color:var(--red);color:var(--red-dk);font-weight:600}
.kwfpanel{position:absolute;top:calc(100% + 4px);left:0;z-index:40;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);min-width:230px;max-height:300px;overflow:auto;padding:6px}
.kwfpanel.hidden{display:none}
.kwfopt{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;font-size:13px;cursor:pointer}
.kwfopt:hover{background:#f2f5fb}
.kwfopt input{accent-color:var(--red)}
.kwfempty{padding:10px 12px;font-size:12.5px;color:var(--muted)}
.kwffoot{border-top:1px solid var(--line);margin-top:4px;padding-top:6px;text-align:right}
.kwffoot button{font-size:12px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:5px 10px;cursor:pointer;color:var(--ink)}
.kwffoot button:hover{border-color:var(--red);color:var(--red-dk)}

/* keyword tags under a lead's company name */
.kwtags{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.kwtag{font-size:10.5px;background:#eef2fb;color:#4a5a7a;border:1px solid #dde5f3;border-radius:99px;padding:1px 8px;font-weight:500;white-space:nowrap}

/* select-all rows */
.kwchk.kwall{background:#eef2fb;border-color:#cdd9f5;font-weight:600}
.kwfall{border-bottom:1px solid var(--line);margin-bottom:4px}

/* grouped (categorized) leads */
.grouphdr td{background:#eef2fb;font-weight:700;color:#2a3550;padding:9px 13px;border-bottom:1px solid var(--line)}
.gcount{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:99px;padding:0 9px;font-size:11px;font-weight:600;color:var(--muted);margin-left:6px}

/* pagination */
.pager{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.pager:empty{display:none}
.pginfo{font-size:13px;color:var(--muted)}
.pgbtns{display:flex;gap:4px;flex-wrap:wrap}
.pgb{min-width:34px;padding:6px 11px;border:1px solid var(--line);background:#fff;border-radius:8px;font-size:13px;cursor:pointer;color:var(--ink);font-weight:600}
.pgb:hover:not(:disabled){border-color:var(--red);color:var(--red-dk)}
.pgb.on{background:var(--red);border-color:var(--red);color:#fff}
.pgb:disabled{opacity:.45;cursor:default}
.pgdots{padding:6px 2px;color:var(--muted)}

/* ============ MOBILE (phones, incl. iPhone Pro Max) ============ */
@media(max-width:720px){
  .topbar{padding:11px 14px;flex-wrap:wrap}
  .brand{font-size:16px;flex:1 1 auto}
  .logout{order:2}
  .tabs{order:3;flex:1 1 100%;margin-top:8px}
  .tab{flex:1;text-align:center}
  .wrap{padding:0 12px;margin:14px auto;gap:14px}
  .panel{padding:14px;border-radius:12px}
  .panel-h{flex-wrap:wrap;gap:6px}
  .row2{gap:12px}
  .row2 .src{flex-wrap:wrap}
  .chk{margin-left:0}
  #run,.row2 .primary{width:100%}
  .exports,.mfilters{flex-wrap:wrap}
  .filters .f,.filters .search{flex:1 1 100%;min-width:0}
  .filters .kwfilter{flex:1 1 100%}
  .kwfbtn{width:100%;text-align:left}
  .kwfpanel{min-width:0;width:100%}

  /* wide tables -> stacked cards */
  .tablewrap{overflow-x:visible}
  .results,.results.meetings{min-width:0;width:100%}
  .results thead{display:none}
  .results tbody,.results tr,.results td{display:block;width:100%}
  .results tr{border:1px solid var(--line);border-radius:12px;margin-bottom:12px;padding:4px 2px;background:#fff;box-shadow:var(--shadow)}
  .results td{border:none;border-bottom:1px solid #f1f3f8;padding:9px 13px;display:flex;justify-content:space-between;align-items:center;gap:14px;text-align:right;max-width:none}
  .results td:last-child{border-bottom:none}
  .results td::before{content:attr(data-label);font-weight:600;color:var(--muted);text-align:left;flex:0 0 auto}
  .results td.idcol{display:none}
  .results td.no-label::before{content:none}
  .grouphdr{box-shadow:none;border:none;margin:8px 0 2px;background:transparent}
  .grouphdr td{display:block;text-align:left;background:#eef2fb;border-radius:8px;border:none}
  .results td.co{font-size:15px;font-weight:700;background:#f7f9fd;border-radius:8px}
  .results td.co::before{color:#9aa6bd}
  .results td.cardfull{display:block;text-align:left}
  .results td.cardfull::before{display:block;margin-bottom:6px}
  .results td.cardfull input{width:100%}
  .results td input.fup,.results td select.st{max-width:62%}
  .results td{white-space:normal;overflow-wrap:anywhere;align-items:flex-start}
  .results td.suitcell{justify-content:flex-end}
  .results td.macts{display:block;text-align:left}
  .results td.macts::before{display:block;margin-bottom:6px}
  .results td.macts .mini{display:inline-block;margin:0 6px 6px 0}
  body{overflow-x:hidden}
}
