/* ============================================================================
   Impor Talenta — feature-specific styles (consumes tokens.css + styles.css)
   ============================================================================ */

.imp-page { background:var(--bg-app); min-height:100%; }
.imp-body { padding:var(--space-6) var(--space-8) 48px; }
.imp-wrap { max-width:1100px; margin:0 auto; }

/* page header */
.imp-head { display:flex; align-items:flex-end; justify-content:space-between; gap:var(--space-6);
  padding:var(--space-6) var(--space-8) 0; }
.imp-head h1 { font-size:var(--title-size); font-weight:800; letter-spacing:-.02em; color:var(--ink-900); }
.imp-head p { font-size:var(--body-md-size); font-weight:600; color:var(--ink-500); margin-top:var(--space-1); }

/* ---- two-column step-1 layout ---- */
.imp-grid { display:grid; grid-template-columns:1.45fr 1fr; gap:var(--space-5); align-items:start; }

/* ---- target selector ---- */
.imp-field-label { display:flex; align-items:center; gap:var(--space-2); font-size:var(--body-md-size); font-weight:800;
  color:var(--ink-800); margin-bottom:10px; }
.imp-field-label .material-symbols-outlined { font-size:var(--headline-md-size); color:var(--ink-500); }
.imp-req-star { color:var(--danger); }
.imp-hint { font-size:var(--label-md-size); font-weight:500; color:var(--ink-400); margin-top:var(--space-2); line-height:1.5; }

.imp-select { width:100%; display:flex; align-items:center; gap:11px; padding:13px 15px; background:#fff;
  border:1px solid var(--border); border-radius:var(--radius); font-size:var(--body-md-size); font-weight:700;
  color:var(--ink-700); cursor:pointer; transition:all .15s; text-align:left; }
.imp-select:hover { border-color:var(--ink-300); }
.imp-select.placeholder { color:var(--ink-400); font-weight:600; }
.imp-select .material-symbols-outlined { font-size:var(--headline-md-size); color:var(--ink-400); }
.imp-select .chev { margin-left:auto; }
.imp-select.filled { border-color:var(--brand-blue); background:var(--bg-tinted); color:var(--ink-900); }

/* tags row */
.imp-tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:11px; }

/* ---- dropzone ---- */
.dropzone { border:1.5px dashed var(--ink-300); border-radius:var(--radius-card); padding:var(--space-10) var(--space-6);
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  background:var(--surface-muted); transition:all .18s; cursor:pointer; }
.dropzone:hover { border-color:var(--brand-blue); background:var(--bg-tinted); }
.dropzone.disabled { opacity:.55; cursor:not-allowed; }
.dropzone.disabled:hover { border-color:var(--ink-300); background:var(--surface-muted); }
.dropzone-ic { width:60px; height:60px; border-radius:50%; background:#fff; border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
.dropzone-ic .material-symbols-outlined { font-size:var(--title-size); color:var(--brand-blue); }
.dropzone h4 { font-size:var(--body-lg-size); font-weight:800; color:var(--ink-800); }
.dropzone p { font-size:var(--label-md-size); font-weight:600; color:var(--ink-400); margin-top:5px; }

/* uploaded file chip */
.file-row { display:flex; align-items:center; gap:13px; padding:14px var(--space-4); background:#fff;
  border:1px solid var(--border); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); }
.file-ic { width:42px; height:42px; border-radius:11px; background:var(--success-soft); color:var(--success-ink);
  display:flex; align-items:center; justify-content:center; flex:none; }
.file-bar { height:5px; border-radius:9999px; background:var(--border); overflow:hidden; margin-top:7px; }
.file-bar > i { display:block; height:100%; background:var(--success); border-radius:9999px; }

/* ---- requirements card ---- */
.req-block { margin-bottom:18px; }
.req-block:last-child { margin-bottom:0; }
.req-h { font-size:var(--label-md-size); font-weight:800; color:var(--ink-800); margin-bottom:11px; }
.req-item { display:flex; align-items:flex-start; gap:9px; padding:5px 0; }
.req-item .material-symbols-outlined { font-size:var(--body-lg-size); flex:none; margin-top:1px; }
.req-item.req .material-symbols-outlined { color:var(--success-ink); }
.req-item.opt .material-symbols-outlined { color:var(--ink-300); }
.req-item code { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:var(--label-md-size); font-weight:700;
  color:var(--ink-900); background:var(--surface-muted); padding:1px 6px; border-radius:5px; }
.req-item span { font-size:var(--label-md-size); font-weight:500; color:var(--ink-500); }

/* ---- column mapping ---- */
.map-table { background:#fff; border:1px solid var(--border); border-radius:var(--radius-card);
  overflow:hidden; box-shadow:var(--shadow-sm); }
.map-head, .map-row { display:grid; grid-template-columns:1fr 40px 1fr 120px; align-items:center; gap:14px; padding:13px 18px; }
.map-head { background:var(--surface-muted); border-bottom:1px solid var(--border); }
.map-head span { font-size:var(--eyebrow-size); font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-400); }
.map-row { border-bottom:1px solid var(--border-soft); }
.map-row:last-child { border-bottom:none; }
.map-src { display:flex; align-items:center; gap:10px; min-width:0; }
.map-src code { font-family:ui-monospace,monospace; font-size:var(--label-md-size); font-weight:700; color:var(--ink-800); }
.map-src small { font-size:var(--eyebrow-size); font-weight:600; color:var(--ink-400); }
.map-arrow { color:var(--ink-300); display:flex; justify-content:center; }
.map-target { display:flex; align-items:center; gap:9px; padding:9px var(--space-3); background:#fff; border:1px solid var(--border);
  border-radius:var(--radius); font-size:var(--label-md-size); font-weight:700; color:var(--ink-800); cursor:pointer; transition:all .15s; }
.map-target:hover { border-color:var(--ink-300); }
.map-target.auto { background:var(--success-soft); border-color:rgba(0,128,128,.3); color:#067a55; }
.map-target.ignored { background:var(--surface-muted); color:var(--ink-400); font-weight:600; }
.map-target .material-symbols-outlined { font-size:var(--body-lg-size); }
.map-target .chev { margin-left:auto; color:var(--ink-400); }
.map-status { display:flex; justify-content:flex-end; }

/* ---- validation summary strip ---- */
.val-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:18px; }
.val-stat { background:#fff; border:1px solid var(--border); border-radius:var(--radius-md); padding:15px var(--space-4); box-shadow:var(--shadow-sm); }
.val-stat .vv { font-size:var(--title-size); font-weight:900; letter-spacing:-.02em; line-height:1; }
.val-stat .vl { font-size:var(--label-sm-size); font-weight:700; color:var(--ink-500); margin-top:6px; display:flex; align-items:center; gap:5px; }
.val-stat .vl .material-symbols-outlined { font-size:var(--body-md-size); }

/* dedup control bar */
.dedup-bar { display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:14px var(--space-4); background:var(--bg-tinted);
  border:1px solid rgba(37,99,235,.14); border-radius:var(--radius-md); margin-bottom:var(--space-4); }
.dedup-bar .lbl { font-size:var(--label-md-size); font-weight:700; color:var(--ink-700); display:flex; align-items:center; gap:7px; }

/* preview table */
.val-table { width:100%; border-collapse:collapse; background:#fff; }
.val-table th { text-align:left; font-size:var(--eyebrow-size); font-weight:800; letter-spacing:.05em; text-transform:uppercase;
  color:var(--ink-400); padding:11px 14px; border-bottom:1px solid var(--border); background:var(--surface-muted); position:sticky; top:0; }
.val-table td { padding:var(--space-3) 14px; border-bottom:1px solid var(--border-soft); font-size:var(--label-md-size); font-weight:600; color:var(--ink-700); }
.val-table tr.err td { background:var(--danger-soft); }
.val-table tr.dup td { background:var(--warning-soft); }
.val-table tr:hover td { filter:brightness(.99); }
.cell-name { font-weight:800; color:var(--ink-900); }
.cell-err { font-size:var(--eyebrow-size); font-weight:700; color:var(--danger); display:flex; align-items:center; gap:var(--space-1); margin-top:2px; }
.cell-err .material-symbols-outlined { font-size:var(--body-md-size); }

/* filter chips row */
.val-filters { display:flex; gap:var(--space-2); margin-bottom:14px; flex-wrap:wrap; }
.fchip { display:inline-flex; align-items:center; gap:6px; padding:7px 13px; border-radius:9999px; border:1px solid var(--border);
  background:#fff; font-size:var(--label-md-size); font-weight:700; color:var(--ink-600); cursor:pointer; transition:all .15s; }
.fchip:hover { border-color:var(--ink-300); }
.fchip.on { background:var(--ink-900); border-color:var(--ink-900); color:#fff; }
.fchip .c { font-size:var(--eyebrow-size); font-weight:800; opacity:.7; }

/* ---- success state ---- */
.imp-done { max-width:560px; margin:var(--space-10) auto; text-align:center; }
.done-ring { width:84px; height:84px; border-radius:50%; background:var(--success-soft); display:flex;
  align-items:center; justify-content:center; margin:0 auto 22px; }
.done-ring .material-symbols-outlined { font-size:var(--headline-lg-size); color:var(--success-ink); }
.done-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-3); margin:26px 0; }
.done-cell { background:#fff; border:1px solid var(--border); border-radius:var(--radius-md); padding:var(--space-4); box-shadow:var(--shadow-sm); }
.done-cell .n { font-size:var(--title-size); font-weight:900; letter-spacing:-.02em; }
.done-cell .l { font-size:var(--label-sm-size); font-weight:700; color:var(--ink-500); margin-top:var(--space-1); }

/* ---- history table ---- */
.hist-table { width:100%; border-collapse:collapse; background:#fff; }
.hist-table th { text-align:left; font-size:var(--eyebrow-size); font-weight:800; letter-spacing:.05em; text-transform:uppercase;
  color:var(--ink-400); padding:13px var(--space-4); border-bottom:1px solid var(--border); }
.hist-table td { padding:14px var(--space-4); border-bottom:1px solid var(--border-soft); font-size:var(--label-md-size); font-weight:700; color:var(--ink-800); }
.hist-table tr:last-child td { border-bottom:none; }
.hist-file { display:flex; align-items:center; gap:11px; }
.hist-file .fic { width:34px; height:34px; border-radius:9px; background:var(--brand-blue-light); color:var(--brand-blue);
  display:flex; align-items:center; justify-content:center; flex:none; }

/* footer action bar */
.imp-foot { display:flex; align-items:center; gap:14px; padding:var(--space-4) 0 0; margin-top:var(--space-5); border-top:1px solid var(--border); }
.imp-foot .spacer { flex:1; }

/* consent note */
.consent { display:flex; gap:10px; align-items:flex-start; padding:var(--space-3) 14px; background:var(--surface-muted);
  border:1px solid var(--border); border-radius:var(--radius-md); font-size:var(--label-md-size); font-weight:600; color:var(--ink-600); line-height:1.5; }
.consent .material-symbols-outlined { font-size:var(--body-lg-size); color:var(--ink-400); flex:none; margin-top:1px; }

/* ============================================================================
   Talent Pool list page
   ============================================================================ */
.tp-toolbar { display:flex; align-items:center; gap:var(--space-3); margin-bottom:var(--space-4); flex-wrap:wrap; }
.tp-segs { display:flex; gap:7px; flex-wrap:wrap; }
.tp-seg { display:inline-flex; align-items:center; gap:6px; padding:var(--space-2) 14px; border-radius:9999px; border:1px solid var(--border);
  background:#fff; font-size:var(--label-md-size); font-weight:700; color:var(--ink-600); cursor:pointer; transition:all .15s; }
.tp-seg:hover { border-color:var(--ink-300); color:var(--ink-800); }
.tp-seg.on { background:var(--brand-blue); border-color:var(--brand-blue); color:#fff; }
.tp-seg .c { font-size:var(--eyebrow-size); font-weight:800; background:var(--surface-muted); color:var(--ink-500); padding:1px 7px; border-radius:9999px; }
.tp-seg.on .c { background:rgba(255,255,255,.24); color:#fff; }

.tp-card { padding:0; overflow:hidden; }
.tp-scroll { overflow-x:auto; }
.tp-table { width:100%; border-collapse:collapse; background:#fff; table-layout:fixed; min-width:822px; }
.tp-table th { text-align:left; font-size:var(--eyebrow-size); font-weight:800; letter-spacing:.05em; text-transform:uppercase;
  color:var(--ink-400); padding:11px var(--space-4); border-bottom:1px solid var(--border); background:var(--surface-muted); white-space:nowrap; }
.tp-table td { padding:12px var(--space-4); border-bottom:1px solid var(--border-soft); font-size:var(--label-md-size);
  font-weight:600; color:var(--ink-700); vertical-align:middle; white-space:nowrap; overflow:hidden; }
.tp-table tr:last-child td { border-bottom:none; }
.tp-table tbody tr { transition:background .12s; cursor:pointer; }
.tp-table tbody tr:hover { background:var(--bg-tinted); }
.tp-table tbody tr.sel { background:var(--brand-blue-light); }
.tp-table tbody tr.sel:hover { background:var(--brand-blue-light); }

/* select column + checkbox */
.tp-checkcol { padding-left:14px; padding-right:0; }
.tp-table th:nth-child(2), .tp-table td:nth-child(2) { padding-left:6px; }
.tp-check { display:inline-flex; align-items:center; justify-content:center; width:19px; height:19px; border-radius:6px;
  border:1.5px solid var(--ink-300); background:#fff; cursor:pointer; transition:all .12s; position:relative; }
.tp-check:hover { border-color:var(--brand-blue); }
.tp-check input { position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.tp-check .material-symbols-outlined { color:#fff; font-weight:700; opacity:0; transition:opacity .1s; }
.tp-check.on, .tp-check.ind { background:var(--brand-blue); border-color:var(--brand-blue); }
.tp-check.on .material-symbols-outlined, .tp-check.ind .material-symbols-outlined { opacity:1; }

/* person cell */
.tp-person { display:flex; align-items:center; gap:11px; min-width:0; }
.tp-person .av { width:40px; height:40px; font-size:var(--body-md-size); flex:none; }
.tp-person-txt { min-width:0; }
.tp-name { font-size:var(--body-md-size); font-weight:800; color:var(--ink-900); overflow:hidden; text-overflow:ellipsis; }
.tp-meta { display:flex; align-items:center; gap:6px; margin-top:1px; font-size:var(--label-sm-size); font-weight:600; color:var(--ink-500); overflow:hidden; }
.tp-role { overflow:hidden; text-overflow:ellipsis; flex:0 1 auto; min-width:0; }
.tp-dot { color:var(--ink-300); flex:none; }
.tp-loc { display:inline-flex; align-items:center; gap:2px; flex:none; color:var(--ink-400); }
.tp-loc .material-symbols-outlined { font-size:14px; }

/* skills */
.tp-skills { display:flex; gap:5px; overflow:hidden; }
.tp-skill { font-size:var(--eyebrow-size); font-weight:700; color:var(--brand-blue); background:var(--brand-blue-light); border:1px solid transparent;
  padding:3px var(--space-2); border-radius:9999px; white-space:nowrap; flex:none; }
.tp-skill.more { color:var(--ink-400); background:transparent; border-color:transparent; padding-left:2px; }

/* source — soft semantic tint per origin */
.tp-src { display:inline-flex; align-items:center; gap:5px; font-size:var(--eyebrow-size); font-weight:800; padding:4px 11px 4px 8px;
  border-radius:9999px; border:1px solid transparent; }
.tp-src .material-symbols-outlined { font-size:14px; }
.tp-src.import   { background:#EFF6FF; color:var(--brand-blue); }
.tp-src.lamaran  { background:var(--success-soft); color:#067a55; }
.tp-src.referral { background:#EEF2FF; color:#1E3A8A; }
.tp-src.manual   { background:var(--surface-muted); color:var(--ink-500); }

.tp-date { color:var(--ink-500); font-weight:600; }
.tp-actioncell { text-align:right; padding-right:12px; }
.tp-rowbtn { width:32px; height:32px; opacity:0; transition:opacity .12s; }
.tp-table tbody tr:hover .tp-rowbtn, .tp-table tbody tr.sel .tp-rowbtn { opacity:1; }

/* bulk-action bar */
.tp-bulkbar { display:flex; align-items:center; gap:var(--space-3); padding:10px var(--space-4);
  background:var(--brand-blue-light); border-bottom:1px solid var(--border); animation:fade .12s ease; }
.tp-bulk-count { display:inline-flex; align-items:center; gap:6px; font-size:var(--label-md-size); font-weight:800; color:var(--brand-blue); }
.tp-bulk-count .material-symbols-outlined { font-size:17px; }
.tp-bulk-actions { display:flex; align-items:center; gap:6px; }
.tp-bulk-actions button { display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border-radius:9999px;
  border:1px solid var(--brand-blue); background:#fff; font-family:inherit; font-size:var(--label-sm-size); font-weight:700;
  color:var(--brand-blue); cursor:pointer; transition:all .12s; }
.tp-bulk-actions button:hover { background:var(--brand-blue); color:#fff; }
.tp-bulk-actions button.danger { border-color:var(--danger); color:var(--danger); }
.tp-bulk-actions button.danger:hover { background:var(--danger); color:#fff; }
.tp-bulk-clear { margin-left:auto; display:inline-flex; align-items:center; gap:5px; padding:6px 10px; border:none; background:transparent;
  font-family:inherit; font-size:var(--label-sm-size); font-weight:700; color:var(--ink-500); cursor:pointer; border-radius:9999px; }
.tp-bulk-clear:hover { color:var(--ink-800); background:rgba(255,255,255,.6); }

.tp-empty { padding:60px var(--space-6); text-align:center; }
.tp-empty-ic { width:64px; height:64px; border-radius:50%; background:var(--brand-blue-light); display:flex;
  align-items:center; justify-content:center; margin:0 auto 18px; }
.tp-empty-ic .material-symbols-outlined { font-size:var(--headline-lg-size); color:var(--brand-blue); }

/* highlight just-imported rows */
@keyframes tpflash { from{ background:var(--bg-tinted); } to{ background:transparent; } }
.tp-table tbody tr.fresh { animation:tpflash 2.2s ease; }

/* row actions menu */
.menu-scrim { position:fixed; inset:0; z-index:60; }
.tp-menu { position:fixed; z-index:61; min-width:212px; background:#fff; border:1px solid var(--border);
  border-radius:var(--radius-md); box-shadow:var(--shadow-lg); padding:6px; animation:fade .12s ease; }
.tp-menu-label { font-size:var(--eyebrow-size); font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-400); padding:var(--space-2) 11px 5px; }
.tp-menu button { display:flex; align-items:center; gap:11px; width:100%; padding:9px 11px; border:none; background:transparent;
  border-radius:8px; font-family:inherit; font-size:var(--label-md-size); font-weight:700; color:var(--ink-700); text-align:left; cursor:pointer; transition:background .12s; }
.tp-menu button:hover { background:var(--surface-muted); }
.tp-menu button .material-symbols-outlined { font-size:var(--headline-md-size); color:var(--ink-400); flex:none; }
.tp-menu button .chev { margin-left:auto; }
.tp-menu button.danger { color:var(--danger); }
.tp-menu button.danger:hover { background:var(--danger-soft); }
.tp-menu button.danger .material-symbols-outlined { color:var(--danger); }
.tp-menu-sep { height:1px; background:var(--border-soft); margin:5px var(--space-1); }
.tp-menu-back { display:flex; align-items:center; gap:var(--space-2); padding:7px 9px 9px; font-size:var(--label-sm-size); font-weight:800; color:var(--ink-500); cursor:pointer; }
.tp-menu-back .material-symbols-outlined { font-size:var(--body-lg-size); }
.tp-menu-jobs { max-height:220px; overflow-y:auto; }

/* ============================================================================
   Pipeline Templates list — icon tile + connected stage flow
   ============================================================================ */
.tpl-icon { width:40px; height:40px; flex:none; border-radius:11px; display:flex; align-items:center; justify-content:center;
  background:var(--brand-blue-light); color:var(--brand-blue); }
.tpl-flow { display:flex; align-items:flex-start; flex-wrap:wrap; gap:5px; }
.tpl-stage { display:inline-flex; align-items:center; gap:6px; font-size:var(--eyebrow-size); font-weight:800; letter-spacing:.01em;
  padding:4px 11px; border-radius:9999px; white-space:nowrap; }
.tpl-dot { width:7px; height:7px; border-radius:9999px; flex:none; }
.tpl-arrow { color:var(--ink-300); margin:0 -1px; }
.tpl-stage-more { background:var(--surface-muted); color:var(--ink-500); }

