/* Extracted from recruiter-dashboard/candidates/index.html. */
body { background: linear-gradient(180deg, #eef2f0 0%, var(--canvas) 320px); }
    /* ---- Filter tabs ---- */
    .candidate-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
    .candidate-tab {
      display: inline-flex; align-items: center; gap: 6px;
      min-height: 36px; padding: 0 14px; border-radius: 999px;
      border: 1px solid var(--line); background: #fff;
      font-size: 0.8125rem; font-weight: 600; color: var(--ink-soft); cursor: pointer;
      font-family: inherit;
    }
    .candidate-tab:hover { background: rgba(131,230,189,0.12); border-color: rgba(5,150,105,0.14); color: var(--ink); }
    .candidate-tab.is-active { background: #f0fdf8; border-color: rgba(5,150,105,0.2); color: var(--ink); }
    .candidate-tab__count {
      min-width: 20px; height: 20px; display: inline-grid; place-items: center;
      border-radius: 999px; background: rgba(1,56,44,0.06);
      font-size: 0.6875rem; font-weight: 700;
    }
    .candidate-tab.is-active .candidate-tab__count { background: rgba(5,150,105,0.12); color: var(--accent); }

    /* ---- Toolbar ---- */
    .page-toolbar {
      display: flex; flex-wrap: wrap; align-items: center;
      justify-content: space-between; gap: 14px; margin-bottom: 20px;
    }
    .page-toolbar__title { margin: 0; font-size: 1.25rem; font-weight: 700; }
    .page-toolbar__search {
      display: flex; align-items: center; gap: 8px;
      padding: 0 14px; height: 40px; border-radius: 999px;
      border: 1px solid var(--line); background: #fff;
      font-size: 0.875rem; color: var(--ink); width: 260px; max-width: 100%;
      font-family: inherit;
    }
    .page-toolbar__search::placeholder { color: var(--ink-faint); }
    .page-toolbar__search:focus { outline: none; border-color: rgba(5,150,105,0.35); box-shadow: 0 0 0 3px rgba(5,150,105,0.08); }

    /* ---- Candidate grid ---- */
    .candidate-grid {
      display: grid; grid-template-columns: repeat(2, 1fr);
      gap: 16px; margin-top: 20px;
    }

    /* ---- Candidate card ---- */
    .candidate-card {
      border: 1px solid var(--line-soft, rgba(1,56,44,0.07));
      border-radius: 16px; background: #fff;
      padding: 24px 22px 20px; display: grid; gap: 14px;
      transition: border-color 0.15s, box-shadow 0.15s;
    }
    .candidate-card:hover {
      border-color: rgba(5,150,105,0.18);
      box-shadow: 0 2px 12px rgba(1,56,44,0.06);
    }

    /* avatar circle */
    .candidate-card__avatar {
      width: 56px; height: 56px; border-radius: 50%;
      display: grid; place-items: center;
      font-size: 1.125rem; font-weight: 700; color: #fff;
      flex-shrink: 0;
    }
    .candidate-card__top {
      display: flex; align-items: center; gap: 14px;
    }

    /* name block */
    .candidate-card__identity { min-width: 0; }
    .candidate-card__name {
      margin: 0; font-size: 1rem; font-weight: 600; line-height: 1.25;
      color: var(--ink);
    }
    .candidate-card__role {
      margin: 2px 0 0; font-size: 0.8125rem; color: var(--ink-soft);
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .candidate-card__location {
      font-size: 0.8125rem; color: var(--ink-faint);
      display: flex; align-items: center; gap: 4px; margin-top: 2px;
    }

    /* skills */
    .candidate-card__skills { display: flex; flex-wrap: wrap; gap: 6px; }
    .skill-chip {
      display: inline-block; padding: 3px 10px; border-radius: 999px;
      font-size: 0.6875rem; font-weight: 600;
      background: rgba(5,150,105,0.07); color: var(--accent);
      border: 1px solid rgba(5,150,105,0.12);
    }

    /* match + availability row */
    .candidate-card__meta {
      display: flex; flex-wrap: wrap; align-items: center;
      gap: 8px 16px; font-size: 0.8125rem;
    }
    .match-score {
      display: inline-flex; align-items: center; gap: 5px;
      font-weight: 700; color: var(--accent);
    }
    .match-score__bar {
      width: 48px; height: 5px; border-radius: 999px;
      background: rgba(5,150,105,0.12); position: relative; overflow: hidden;
    }
    .match-score__fill {
      position: absolute; left: 0; top: 0; height: 100%;
      border-radius: 999px; background: var(--accent);
    }
    .availability-badge {
      display: inline-flex; align-items: center; gap: 5px;
      padding: 2px 10px; border-radius: 999px;
      font-size: 0.6875rem; font-weight: 600;
    }
    .availability-badge--open { background: #ecfdf5; color: #059669; }
    .availability-badge--active { background: #eff6ff; color: #2563eb; }
    .availability-badge--passive { background: #f3f4f6; color: #6b7280; }

    /* action buttons */
    .candidate-card__actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 2px; }
    .cand-btn {
      display: inline-flex; align-items: center; gap: 6px;
      padding: 0 16px; height: 34px; border-radius: 999px;
      font-size: 0.8125rem; font-weight: 600; border: none;
      cursor: pointer; font-family: inherit; text-decoration: none;
    }
    .cand-btn--outline {
      background: #fff; color: var(--ink);
      border: 1px solid var(--line);
    }
    .cand-btn--outline:hover { border-color: rgba(5,150,105,0.25); background: #fcfefb; }
    .cand-btn--primary {
      background: var(--accent); color: #fff; border: 1px solid transparent;
    }
    .cand-btn--primary:hover { background: #047857; }

    /* avatar color palette */
    .avatar-bg-1 { background: #059669; }
    .avatar-bg-2 { background: #0284c7; }
    .avatar-bg-3 { background: #7c3aed; }
    .avatar-bg-4 { background: #db2777; }
    .avatar-bg-5 { background: #d97706; }
    .avatar-bg-6 { background: #0891b2; }
    .avatar-bg-7 { background: #4f46e5; }
    .avatar-bg-8 { background: #be123c; }

    @media (max-width: 839px) {
      .candidate-grid { grid-template-columns: 1fr; }
    }
    @media (max-width: 639px) {
      .page-toolbar__search { width: 100%; }
    }

    /* ── Bulk action styles ── */
    .bulk-bar { position:fixed; bottom:0; left:0; right:0; z-index:85; background:#fff; border-top:1px solid var(--line); padding:12px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; box-shadow:0 -4px 16px rgba(0,0,0,0.06); transform:translateY(100%); transition:transform 0.25s ease; }
    .bulk-bar.is-visible { transform:translateY(0); }
    .bulk-bar__info { display:flex; align-items:center; gap:12px; font-size:0.875rem; font-weight:600; }
    .bulk-bar__count { min-width:28px; height:28px; display:inline-grid; place-items:center; border-radius:999px; background:var(--accent); color:#fff; font-size:0.8125rem; font-weight:700; }
    .bulk-bar__actions { display:flex; gap:8px; flex-wrap:wrap; }
    .bulk-bar__actions .button { min-height:36px; font-size:0.8125rem; }
    @media (max-width: 639px) {
      .bulk-bar { flex-direction:column; padding:12px 16px; gap:10px; }
      .bulk-bar__actions { width:100%; justify-content:stretch; }
      .bulk-bar__actions .button { flex:1; min-width:0; padding:0 8px; font-size:0.75rem; }
    }
    .app-card__check { width:20px; height:20px; border-radius:6px; border:2px solid var(--line); background:#fff; cursor:pointer; display:grid; place-items:center; flex-shrink:0; transition:all 0.15s; }
    .app-card__check.is-checked { background:var(--accent); border-color:var(--accent); }
    .app-card__check.is-checked::after { content:'\2713'; color:#fff; font-size:0.75rem; font-weight:700; }
    .bulk-select-all { display:flex; align-items:center; gap:8px; font-size:0.8125rem; font-weight:600; color:var(--ink-soft); cursor:pointer; margin-bottom:8px; }
    .bulk-select-all .app-card__check { width:18px; height:18px; }

    /* ── Compare mode (candidates) — mirrors the feed's Compare Jobs pattern ── */
    #compare-mode-btn { display:inline-flex; align-items:center; gap:6px; }
    #compare-mode-btn.is-active { background:#01382C; color:#ecfdf5; border-color:#01382C; }
    .compare-mode-active .candidate-card { cursor:pointer; }
    .compare-mode-active .candidate-card:has(.app-card__check.is-checked) {
      outline:2px solid #059669; outline-offset:-2px; border-radius:16px;
      background:rgba(5,150,105,0.03);
    }
    /* Selection UI is gated behind Compare Candidates mode — checkboxes,
       Select-All, and the sticky bulk-bar are invisible until the user
       enters compare mode. */
    .app-card__check { display:none; }
    .bulk-select-all { display:none; }
    body.compare-mode-active .app-card__check { display:grid; }
    body.compare-mode-active .bulk-select-all { display:flex; }
    /* bulk-bar stays position:sticky but its slide-in is gated on compare mode */
    body:not(.compare-mode-active) .bulk-bar.is-visible { transform:translateY(100%); }

    /* ── Invite to Apply modal ── */
    .invite-modal { position:fixed; inset:0; z-index:900; display:flex; align-items:center; justify-content:center; background:rgba(1,56,44,0.35); }
    .invite-modal[hidden] { display:none; }
    .invite-modal__card { width:480px; max-width:calc(100% - 32px); max-height:calc(100vh - 48px); background:var(--surface); border-radius:18px; box-shadow:var(--shadow-lifted); display:flex; flex-direction:column; overflow:hidden; }
    .invite-modal__header { display:flex; align-items:center; justify-content:space-between; padding:22px 24px 0; }
    .invite-modal__title { margin:0; font-size:1.125rem; font-weight:700; color:var(--ink); }
    .invite-modal__close { width:34px; height:34px; display:grid; place-items:center; border-radius:999px; border:1px solid var(--line); background:var(--surface); color:var(--ink); font-size:1rem; cursor:pointer; }
    .invite-modal__close:hover { background:rgba(131,230,189,0.12); border-color:rgba(5,150,105,0.18); }
    .invite-modal__body { flex:1; overflow-y:auto; padding:20px 24px; }
    .invite-modal__candidate { display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:12px; background:rgba(5,150,105,0.04); margin-bottom:18px; font-size:0.875rem; font-weight:600; color:var(--ink); }
    .invite-modal__field { margin-bottom:16px; }
    .invite-modal__label { display:block; margin-bottom:6px; font-size:0.75rem; font-weight:600; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.06em; }
    .invite-modal__select, .invite-modal__textarea { display:block; width:100%; box-sizing:border-box; min-height:40px; padding:10px 14px; border:1px solid var(--line); border-radius:10px; background:#fff; font:inherit; font-size:0.875rem; color:var(--ink); outline:none; }
    .invite-modal__select:focus, .invite-modal__textarea:focus { border-color:var(--accent); }
    .invite-modal__textarea { min-height:80px; resize:vertical; }
    .invite-modal__footer { display:flex; justify-content:flex-end; gap:10px; padding:16px 24px; border-top:1px solid rgba(1,56,44,0.07); }
    .invite-modal__btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:38px; padding:0 20px; border-radius:999px; font-size:0.8125rem; font-weight:600; cursor:pointer; border:1px solid var(--line); background:#fff; color:var(--ink); }
    .invite-modal__btn:hover { background:rgba(131,230,189,0.12); border-color:rgba(5,150,105,0.18); }
    .invite-modal__btn--ghost { border-color:transparent; background:transparent; }
    .invite-modal__btn--ghost:hover { background:rgba(1,56,44,0.04); border-color:transparent; }
    .invite-modal__btn--primary { background:var(--accent); color:#fff; border-color:var(--accent); }
    .invite-modal__btn--primary:hover { background:#047857; border-color:#047857; }
    .invite-modal__success { text-align:center; padding:32px 24px; }
    .invite-modal__success-icon { width:56px; height:56px; border-radius:50%; display:inline-grid; place-items:center; background:#d1fae5; color:#059669; margin-bottom:16px; }
    .invite-modal__success-icon svg { width:28px; height:28px; }
    .invite-modal__success-title { margin:0 0 10px; font-size:1.125rem; font-weight:700; color:var(--ink); }
    .invite-modal__success-detail { margin:0 0 20px; font-size:0.875rem; color:var(--ink-soft); line-height:1.5; }
