/* ── Reset & Base ─────────────────────────────────────────── */
* { margin:0; padding:0; box-sizing:border-box; }
:root {
  --ink:#111827; --ink2:#374151; --mut:#6b7280; --line:#e5e7eb;
  --bg:#eef1f5; --card:#ffffff; --accent:#2563eb;
  --good:#15803d; --goodbg:#dcfce7; --warn:#b45309; --warnbg:#fef3c7;
  --bad:#b91c1c; --badbg:#fee2e2;
}
html { font-size:17px; }
body { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',sans-serif;
       background:var(--bg); color:var(--ink); line-height:1.5;
       -webkit-font-smoothing:antialiased; }
a { color:var(--accent); text-decoration:none; }
a:hover { text-decoration:underline; }
.wrap { padding:14px 18px 60px; }
.wrap.narrow { max-width:1200px; margin:0 auto; }
h1 { font-size:1.3rem; color:var(--ink); display:flex; align-items:center; gap:8px; margin-bottom:4px; }
.sub { color:var(--mut); font-size:.9rem; font-weight:400; }

/* ── Toolbar ──────────────────────────────────────────────── */
.bar { background:var(--card); border:1px solid var(--line); border-radius:8px;
       padding:9px 14px; margin:8px 0; display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.bar label { font-size:.88rem; color:var(--ink2); }
.bar input[type=text], .bar input[type=number], .bar select {
      padding:6px 10px; border:1px solid #cbd5e1; border-radius:6px; font-size:.9rem; color:var(--ink); }
.bar input[type=text].search { width:240px; }
.bar button { padding:7px 16px; background:var(--accent); color:#fff; border:none;
      border-radius:6px; font-size:.9rem; cursor:pointer; font-weight:600; }
.bar button.sec { background:#fff; color:var(--ink2); border:1px solid #cbd5e1; }
.bar .right { margin-left:auto; display:flex; gap:10px; align-items:center; }
.bar .count { font-size:.9rem; color:var(--mut); font-weight:600; }

.assign-bar { background:#eef4ff; border-color:#bfdbfe; position:sticky; top:0; z-index:40; }
.assign-bar.hidden { display:none; }
.assign-bar b { color:#1d4ed8; font-size:1rem; }

/* ── Table ────────────────────────────────────────────────── */
.tbl-wrap { border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--card); }
table { width:100%; border-collapse:collapse; table-layout:fixed; }
thead th { background:#f1f5f9; text-align:left; padding:8px 8px; font-size:.75rem;
     color:var(--mut); font-weight:700; letter-spacing:.03em; text-transform:uppercase;
     border-bottom:2px solid #cbd5e1; white-space:nowrap; }
td { padding:8px 9px; font-size:.9rem; border-bottom:1px solid #eef1f5; vertical-align:middle;
     overflow:hidden; text-overflow:ellipsis; }
tbody tr.lead-row:hover { background:#eff6ff; }
tr.lead-row { cursor:pointer; }
tr.lead-row.sel { background:#dbeafe; }
tr.lead-row:nth-child(even) { background:#fafbfc; }
tr.lead-row:nth-child(even):hover { background:#eff6ff; }

/* ── Score ────────────────────────────────────────────────── */
.score { display:inline-block; font-weight:800; font-size:1.2rem; min-width:46px;
         text-align:center; padding:5px 7px; border-radius:6px; line-height:1; }
.s-hi { background:var(--goodbg); color:var(--good); }
.s-mid { background:var(--warnbg); color:var(--warn); }
.s-lo { background:var(--badbg); color:var(--bad); }

/* ── Person info ──────────────────────────────────────────── */
.name { font-weight:700; color:var(--ink); font-size:.98rem; display:block; line-height:1.25; }
.headline-snip { font-size:.8rem; color:var(--mut); display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
.role { display:inline-block; font-size:.72rem; padding:2px 7px; border-radius:4px;
        margin-top:2px; font-weight:600; vertical-align:middle; }
.r-executive { background:var(--goodbg); color:var(--good); }
.r-recruiter { background:#dbeafe; color:#1e40af; }
.r-hr { background:var(--warnbg); color:var(--warn); }
.r-manager { background:#e0e7ff; color:#3730a3; }
.r-engineer, .r-other, .r-unknown { background:#f1f5f9; color:var(--mut); }

.muted { color:var(--mut); font-size:.82rem; }
.company-link { font-weight:700; font-size:.95rem; color:var(--accent);
      white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; }
.company-link:hover { text-decoration:underline; color:#1d4ed8; }
.ind { font-size:.8rem; color:var(--mut); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.loc { font-size:.8rem; color:#9ca3af; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* ── Badges ───────────────────────────────────────────────── */
.badge { display:inline-block; padding:2px 6px; border-radius:4px; font-size:.72rem;
         font-weight:600; margin:1px 2px 1px 0; line-height:1.3; }
.b-staff { background:#fef3c7; color:#92400e; }
.b-noprof { background:#f1f5f9; color:var(--mut); }
.b-target { background:#e0e7ff; color:#3730a3; }
.b-hiring { background:#dcfce7; color:#15803d; }
.b-assigned { background:var(--goodbg); color:var(--good); font-size:.82rem; padding:3px 8px; }
.b-unassigned { color:#cbd5e1; font-size:.82rem; }

/* ── Size chips ───────────────────────────────────────────── */
.sz { display:inline-block; padding:3px 8px; border-radius:5px; font-weight:700; font-size:.85rem; white-space:nowrap; }
.sz-ideal { background:var(--goodbg); color:var(--good); }
.sz-ok { background:#e0f2fe; color:#075985; }
.sz-mid { background:var(--warnbg); color:var(--warn); }
.sz-big { background:var(--badbg); color:var(--bad); }
.sz-unk { background:#f1f5f9; color:var(--mut); }

/* ── Signal column ────────────────────────────────────────── */
.act-fresh { color:var(--good); font-weight:700; font-size:.85rem; }
.act-mid { color:var(--warn); font-weight:600; font-size:.85rem; }
.act-stale { color:var(--bad); font-size:.85rem; }
.app-sweet { color:var(--good); font-weight:700; font-size:.85rem; }
.app-hot { color:var(--bad); font-weight:600; font-size:.85rem; }
.app-cold { color:var(--mut); font-size:.85rem; }
.fire { color:#dc2626; font-weight:700; font-size:.82rem; }

/* ── LinkedIn profile link ────────────────────────────────── */
.prof-link { display:inline-block; padding:4px 10px; border-radius:5px; background:#eef4ff;
      color:var(--accent); font-weight:700; font-size:.85rem; white-space:nowrap; }
.prof-link:hover { background:#dbeafe; text-decoration:none; }
.prof-no { color:#cbd5e1; font-size:.85rem; }

/* ── Expand detail ────────────────────────────────────────── */
tr.detail-row > td { padding:0; background:#f8fafc; }
.detail { overflow:hidden; max-height:0; transition:max-height .25s ease; }
.detail.open { max-height:2000px; padding:20px 24px; border-bottom:3px solid #cbd5e1; }
.detail-inner { padding:0; }
.dgrid { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:22px; }
@media (max-width:1500px){ .dgrid { grid-template-columns:1fr 1fr; } }
@media (max-width:1000px){ .dgrid { grid-template-columns:1fr; } }
.dcol h4 { font-size:.85rem; text-transform:uppercase; letter-spacing:.04em; color:var(--mut);
           border-bottom:1px solid var(--line); padding-bottom:5px; margin-bottom:8px; }
.job-item { border:1px solid var(--line); border-radius:8px; padding:10px 13px; margin-bottom:7px; background:#fff; }
.job-item .jt { font-weight:700; font-size:.98rem; }
.job-item .muted { font-size:.85rem; }
.about-box { font-size:.95rem; color:var(--ink2); max-height:240px; overflow:auto;
             background:#fff; border:1px solid var(--line); border-radius:8px; padding:12px; line-height:1.55; }
.post-item { font-size:.9rem; color:var(--ink2); border-left:3px solid #cbd5e1;
             padding:4px 10px; margin:5px 0; }
.bd-bars .row { display:flex; align-items:center; gap:8px; margin:4px 0; font-size:.9rem; }
.bd-bars .lbl { width:115px; text-align:right; color:var(--mut); }
.bd-bars .track { flex:1; height:10px; background:#eef1f5; border-radius:5px; max-width:230px; overflow:hidden; }
.bd-bars .fill { height:100%; border-radius:5px; }
.bd-bars .v { width:42px; font-weight:700; }

/* ── Pagination ───────────────────────────────────────────── */
.pg { display:flex; justify-content:center; gap:5px; margin:20px 0; flex-wrap:wrap; }
.pg a, .pg span { padding:7px 13px; border-radius:6px; border:1px solid var(--line);
      background:#fff; color:var(--ink2); font-size:.9rem; }
.pg a:hover { background:#eff6ff; text-decoration:none; }
.pg .cur { background:var(--accent); color:#fff; border-color:var(--accent); font-weight:700; }
.pg .dis { color:#cbd5e1; }

/* ── Feedback (BD view) ───────────────────────────────────── */
.fb-btns { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.fb-btn { padding:6px 14px; border:1px solid #cbd5e1; border-radius:16px; background:#fff;
          font-size:.9rem; cursor:pointer; color:var(--ink2); font-weight:600; transition:all .15s; }
.fb-btn:hover { border-color:#93c5fd; }
.fb-pos { border-color:#bbf7d0; background:#f0fdf4; }
.fb-neg { border-color:#fecaca; background:#fef2f2; }
.fb-btn.on-good { background:var(--good); color:#fff; border-color:var(--good); }
.fb-btn.on-bad { background:var(--bad); color:#fff; border-color:var(--bad); }
.fb-btn.on-ok { background:var(--warn); color:#fff; border-color:var(--warn); }
.fb-sep { width:1px; height:22px; background:#d1d5db; margin:0 4px; }
.fb-note { width:100%; padding:7px 10px; border:1px solid #cbd5e1; border-radius:6px;
           font-size:.9rem; margin-top:6px; }
.saved-tag { font-size:.82rem; color:var(--good); margin-left:6px; font-weight:600; }

.expand-hint { font-size:.72rem; color:#cbd5e1; margin-left:2px; }
tr.lead-row.expanded .expand-hint { color:var(--accent); }

/* ── BD card layout ───────────────────────────────────────── */
.card-lead { background:#fff; border-radius:10px; padding:14px 18px; margin:10px 0;
             box-shadow:0 1px 3px rgba(0,0,0,.06); }

/* ── Connect tracking chips (inline with feedback buttons) ── */
.conn-label { font-size:.78rem; color:#9ca3af; font-weight:600; margin-left:2px; }
.conn-chip { padding:3px 10px; border:1px solid #d1d5db; border-radius:10px;
             background:#f9fafb; font-size:.8rem; cursor:pointer; font-weight:600;
             color:#9ca3af; transition:all .15s; }
.conn-chip:hover { border-color:#93c5fd; color:#6b7280; }
.conn-chip-hint { background:#fff; color:#9ca3af; border:1px dashed #d1d5db; }
.conn-chip-hint:hover { border-color:#93c5fd; color:#2563eb; border-style:solid; }
.conn-chip-on { background:#dbeafe; color:#1e40af; border-color:#93c5fd; }
.conn-chip-on:hover { background:#bfdbfe; }
.conn-chip-yes { background:#dcfce7; color:#15803d; border-color:#86efac; }
.conn-chip-yes:hover { background:#bbf7d0; }
.conn-chip-no { background:#fee2e2; color:#b91c1c; border-color:#fca5a5; }
.conn-chip-no:hover { background:#fecaca; }
.conn-hint { font-size:.75rem; color:#cbd5e1; }

/* ── Assign page ──────────────────────────────────────────── */
.assign-card { background:#fff; border-radius:12px; padding:24px; margin:12px 0;
               box-shadow:0 1px 3px rgba(0,0,0,.06); }
.assign-card h3 { font-size:1.05rem; margin-bottom:12px; color:#1e40af; }
.assign-form { display:flex; gap:16px; align-items:flex-end; flex-wrap:wrap; }
.assign-form .field { display:flex; flex-direction:column; gap:4px; }
.assign-form label { font-weight:700; font-size:.85rem; color:#374151; }
.assign-form textarea, .assign-form input { padding:8px 10px; border:1px solid #cbd5e1;
      border-radius:6px; font-size:.92rem; color:#111827; }
.assign-form textarea { width:260px; resize:vertical; }
.assign-form input[type=number] { width:90px; }
.assign-form input[type=date] { width:155px; }
.btn-primary { padding:10px 24px; background:#2563eb; color:#fff; border:none;
      border-radius:6px; font-size:.95rem; cursor:pointer; font-weight:700; }
.btn-primary:hover { background:#1d4ed8; }
.btn-secondary { padding:10px 20px; background:#fff; color:#374151; border:1px solid #cbd5e1;
      border-radius:6px; font-size:.92rem; cursor:pointer; font-weight:600; }
.btn-confirm { padding:12px 32px; background:#15803d; color:#fff; border:none;
      border-radius:8px; font-size:1rem; cursor:pointer; font-weight:700; }
.btn-confirm:hover { background:#166534; }
.dist-table { width:100%; border-collapse:collapse; margin-top:16px; }
.dist-table th { background:#f1f5f9; text-align:left; padding:8px 10px; font-size:.78rem;
      color:#6b7280; font-weight:700; text-transform:uppercase; border-bottom:2px solid #cbd5e1; }
.dist-table td { padding:7px 10px; font-size:.9rem; border-bottom:1px solid #f1f5f9; }
.dist-summary { display:flex; gap:20px; flex-wrap:wrap; margin:12px 0; }
.dist-summary .stat { background:#f0fdf4; border-radius:8px; padding:12px 18px; }
.dist-summary .stat b { display:block; font-size:1.4rem; color:#15803d; }
.dist-summary .stat span { font-size:.82rem; color:#6b7280; }
.user-header { background:#eff6ff !important; color:#1e40af !important; font-size:.85rem !important;
      font-weight:700 !important; text-transform:none !important; letter-spacing:0 !important; }
.status-ok { color:#15803d; font-weight:700; }
.status-warn { color:#b45309; font-weight:600; }

/* ── Detail layout (v2) ──────────────────────────────────── */
.detail-section-title { font-size:.82rem; text-transform:uppercase; letter-spacing:.04em;
    color:#6b7280; font-weight:700; margin-bottom:6px; padding-bottom:4px;
    border-bottom:1px solid #e5e7eb; }
.action-row { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:6px; }
.action-link { display:inline-block; padding:5px 12px; border-radius:6px;
    background:#eef4ff; color:#2563eb; font-weight:700; font-size:.88rem; }
.action-link:hover { background:#dbeafe; text-decoration:none; }
.detail-meta { font-size:.85rem; color:#6b7280; margin:4px 0; }
.detail-headline { font-size:.9rem; color:#374151; margin:6px 0; line-height:1.4; }
.b-urgent { background:#fee2e2; color:#b91c1c; }
.b-hiring { background:#dcfce7; color:#15803d; }
.post-time { color:#2563eb; font-size:.82rem; margin-right:4px; }
.post-reactions { color:#9ca3af; font-size:.78rem; margin:0 4px; }
.row-reason { font-size:.75rem; color:#9ca3af; margin:-2px 0 4px 123px; }
.sz-small { display:inline-block; padding:2px 7px; border-radius:4px;
    font-weight:700; font-size:.82rem; background:#e0f2fe; color:#075985; }

/* ── Contact info ────────────────────────────────────────── */
.contact-row { font-size:.88rem; }
.contact-email { color:#15803d; font-weight:600; }
.contact-email span { user-select:all; }
.contact-status { font-size:.78rem; color:#9ca3af; font-weight:400; margin-left:4px; }
.contact-empty { color:#9ca3af; }
.btn-fetch-email { padding:4px 10px; border:1px solid #2563eb; border-radius:6px;
    background:#fff; color:#2563eb; font-size:.84rem; cursor:pointer; font-weight:600; }
.btn-fetch-email:hover { background:#eef4ff; }
.btn-fetch-email:disabled { opacity:.5; cursor:not-allowed; }

/* ── Claim button ────────────────────────────────────────── */
.btn-claim { padding:8px 18px; background:linear-gradient(135deg,#2563eb,#7c3aed);
    color:#fff; border:none; border-radius:8px; font-size:.9rem; cursor:pointer;
    font-weight:700; margin-left:auto; transition:all .2s; white-space:nowrap; }
.btn-claim:hover { background:linear-gradient(135deg,#1d4ed8,#6d28d9);
    transform:translateY(-1px); box-shadow:0 4px 12px rgba(37,99,235,.3); }
.btn-claim:disabled { opacity:.6; cursor:not-allowed; transform:none; }
.btn-claim-big { padding:14px 32px; font-size:1.1rem; border-radius:12px; margin:16px 0; }

/* ── User bar ────────────────────────────────────────────── */
.userbar { display:flex; align-items:center; justify-content:flex-end; gap:14px;
    padding:8px 18px; background:var(--card); border-bottom:1px solid var(--line);
    font-size:.85rem; }
.ub-user { color:var(--ink2); font-weight:600; }
.ub-link { color:var(--mut); font-weight:600; }
.ub-link:hover { color:var(--accent); text-decoration:none; }

/* ── Login page ──────────────────────────────────────────── */
.login-wrap { display:flex; align-items:center; justify-content:center;
    min-height:80vh; padding:20px; }
.login-card { background:var(--card); border:1px solid var(--line);
    border-radius:14px; padding:44px 40px; width:100%; max-width:400px;
    text-align:center; box-shadow:0 8px 30px rgba(15,23,42,.06); }
.login-card h1 { font-size:1.45rem; margin-bottom:6px; }
.login-sub { color:var(--mut); font-size:.92rem; margin-bottom:26px; }
.login-error { background:var(--badbg); color:var(--bad); font-size:.88rem;
    border-radius:8px; padding:10px 14px; margin-bottom:18px; }
.login-btn { display:flex; align-items:center; justify-content:center; gap:10px;
    width:100%; padding:12px 16px; border:1px solid #d1d5db; border-radius:10px;
    background:#fff; color:var(--ink); font-weight:600; font-size:1rem;
    transition:all .15s; }
.login-btn:hover { background:#f8fafc; border-color:#9ca3af;
    box-shadow:0 2px 8px rgba(15,23,42,.08); text-decoration:none; }
