/* Recruiting module (Phase 5). Tokens only. */

/* Jobs list */
.job-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: var(--space-4); }
.job-card { padding: var(--space-5); cursor: pointer; display: flex; flex-direction: column; gap: var(--space-3); transition: transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast); }
.job-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.job-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-3); }
.job-card__head h3 { font-size: var(--text-base); margin: 0; }
.job-card__title-row { display: flex; align-items: center; flex: 1 1 auto; gap: var(--space-2); min-width: 0; }
/* 2026-07-13 — icon-chip, tinted by real status/priority — same "icon +
   tint" device used across Dashboard/Leaves/Perform/Profile this pass.
   Shared between the Jobs list and Hiring Plan cards (both reuse
   .job-card__head), each call site picking its own icon + tone mapping. */
.job-card__icon { display: grid; place-items: center; width: 26px; height: 26px; border-radius: var(--radius-sm); flex-shrink: 0; background: var(--color-primary-soft); color: var(--color-primary); }
.job-card__icon .icon { width: 15px; height: 15px; }
.job-card__icon--success { background: var(--color-success-soft); color: var(--color-success); }
.job-card__icon--warning { background: var(--color-warning-soft); color: var(--color-warning); }
.job-card__icon--danger { background: var(--color-danger-soft); color: var(--color-danger); }
.job-card__meta { font-size: var(--text-sm); color: var(--color-fg-muted); }
.job-card__count { display: flex; align-items: center; gap: var(--space-2); font-size: var(--text-sm); color: var(--color-fg-muted); }
.job-card__count .icon { width: 16px; height: 16px; }

/* Kanban */
.kanban-board { display: flex; gap: var(--space-4); overflow-x: auto; padding-bottom: var(--space-4); align-items: flex-start; }
.kanban-column { flex: 0 0 260px; background: var(--color-surface-2); border: 1px solid var(--color-border); border-radius: var(--radius-lg); display: flex; flex-direction: column; max-height: calc(100dvh - 220px); }
.kanban-column__head { display: flex; align-items: center; justify-content: space-between; padding: var(--space-3) var(--space-4); font-size: var(--text-sm); font-weight: var(--font-semibold); border-bottom: 1px solid var(--color-border); }
.kanban-count { min-width: 22px; text-align: center; padding: 0 6px; border-radius: var(--radius-full); background: var(--color-surface); color: var(--color-fg-muted); font-size: var(--text-xs); font-variant-numeric: tabular-nums; }
.kanban-drop { flex: 1; overflow-y: auto; padding: var(--space-3); display: flex; flex-direction: column; gap: var(--space-2); min-height: 80px; transition: background var(--dur-fast); }
.kanban-drop.drag-over { background: var(--color-primary-soft); }

.candidate-card { display: flex; gap: var(--space-3); padding: var(--space-3); background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); cursor: grab; box-shadow: var(--shadow-xs); transition: box-shadow var(--dur-fast), transform var(--dur-fast); }
.candidate-card:hover { box-shadow: var(--shadow-sm); }
.candidate-card.dragging { opacity: 0.5; transform: rotate(1deg); }
.candidate-card__main { min-width: 0; }
.candidate-card__name { overflow-wrap: anywhere; font-weight: var(--font-semibold); font-size: var(--text-sm); line-height: var(--leading-snug); }
.candidate-card__src { overflow-wrap: anywhere; font-size: var(--text-xs); color: var(--color-fg-muted); line-height: var(--leading-snug); }
.candidate-card__stars { font-size: var(--text-xs); }

.star { color: var(--color-border-strong); cursor: default; }
.star.is-on { color: var(--amber-500); }
.rating .star { font-size: var(--text-xl); cursor: pointer; }

/* Drawer */
.drawer-overlay { position: fixed; inset: 0; z-index: var(--z-modal); background: var(--color-overlay); opacity: 0; transition: opacity var(--dur-base) var(--ease-in-out); }
.drawer-overlay--in { opacity: 1; }
.drawer { position: absolute; top: 0; right: 0; height: 100dvh; width: 420px; max-width: 92vw; background: var(--color-surface); border-left: 1px solid var(--color-border); box-shadow: var(--shadow-xl); display: flex; flex-direction: column; transform: translateX(100%); transition: transform var(--dur-base) var(--ease-out); }
.drawer-overlay--in .drawer { transform: none; }
.drawer__head { display: flex; align-items: flex-start; justify-content: space-between; padding: var(--space-5) var(--space-6); border-bottom: 1px solid var(--color-border); }
.drawer__head > div { display: flex; gap: var(--space-3); align-items: center; }
.drawer__head h2 { font-size: var(--text-lg); }
.drawer__body { flex: 1; overflow-y: auto; padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-5); }
.drawer-section h3 { font-size: var(--text-sm); font-weight: var(--font-semibold); color: var(--color-fg-muted); margin-bottom: var(--space-3); }
.drawer-section__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); margin-bottom: var(--space-3); }
.drawer-section__head h3 { margin-bottom: 0; }

.stage-progress { display: flex; gap: var(--space-2); }
.stage-dot { flex: 1; height: 6px; border-radius: var(--radius-full); background: var(--color-surface-hover); }
.stage-dot.is-done { background: var(--color-primary); }
.stage-dot.is-current { background: var(--color-primary); box-shadow: 0 0 0 3px var(--color-primary-soft); }
.drawer-stage-row { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }

.note-form { display: flex; gap: var(--space-2); margin-bottom: var(--space-3); }
.note-form .modal-input { flex: 1; height: 38px; }
.notes-list { display: flex; flex-direction: column; gap: var(--space-3); }
.note-item { padding: var(--space-3); background: var(--color-surface-2); border-radius: var(--radius-md); }
.note-item__body { font-size: var(--text-sm); white-space: pre-wrap; }
.note-item__meta { margin-top: var(--space-1); font-size: var(--text-xs); color: var(--color-fg-subtle); }

@media (max-width: 640px) { .drawer { width: 100vw; max-width: 100vw; } }

/* Tags (Priority 22): candidate_tags / job_tags chips, used on Kanban cards, job-grid
   cards, the candidate drawer and the job tag-picker modal. */
.tag-chip-list { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-2); align-items: center; }
.tag-chip { display: inline-flex; align-items: center; gap: var(--space-1); padding: 2px var(--space-2); border-radius: var(--radius-full); background: var(--color-primary-soft); color: var(--color-primary); font-size: var(--text-xs); font-weight: var(--font-medium); }
.tag-chip button { border: none; background: none; color: inherit; cursor: pointer; padding: 0; line-height: 1; opacity: 0.7; }
.tag-chip button:hover { opacity: 1; }

/* 2026 Recruiting workspace refresh */
.rc-hub,
.rc-job-board-page {
  width: min(1320px, 100%);
  margin: 0 auto;
}

.rc-hub__hero {
  position: relative;
  overflow: hidden;
  margin-bottom: var(--space-6);
  padding: var(--space-8) var(--space-8) 0;
  border: 1px solid color-mix(in srgb, var(--color-primary) 14%, var(--color-border));
  border-radius: var(--radius-xl);
  background:
    radial-gradient(circle at 92% 0%, color-mix(in srgb, var(--color-primary) 14%, transparent), transparent 34%),
    linear-gradient(135deg, color-mix(in srgb, var(--color-primary-soft) 30%, var(--color-surface)), var(--color-surface) 58%);
  box-shadow: var(--shadow-sm);
}

.rc-hub__hero::after {
  position: absolute;
  top: -80px;
  right: -30px;
  width: 230px;
  height: 230px;
  border: 1px solid color-mix(in srgb, var(--color-primary) 12%, transparent);
  border-radius: 50%;
  content: '';
  pointer-events: none;
}

.rc-hub__eyebrow {
  position: relative;
  z-index: 1;
  margin-bottom: var(--space-2);
  color: var(--color-primary);
  font-size: var(--text-xs);
  font-weight: var(--font-bold);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.rc-hub__hero h1 {
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: clamp(1.8rem, 3vw, 2.45rem);
  letter-spacing: -.045em;
}

.rc-hub__hero > p {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin: var(--space-2) 0 var(--space-6);
  color: var(--color-fg-muted);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
}

.rc-nav {
  position: relative;
  z-index: 1;
  display: flex;
  gap: var(--space-1);
  overflow-x: auto;
  padding: 4px;
  border-top: 1px solid color-mix(in srgb, var(--color-border) 74%, transparent);
  scrollbar-width: none;
}

.rc-nav::-webkit-scrollbar { display: none; }

.rc-nav__item {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: var(--space-2);
  min-height: 48px;
  padding: 0 var(--space-4);
  border: 0;
  border-radius: var(--radius-md) var(--radius-md) 0 0;
  background: transparent;
  color: var(--color-fg-muted);
  cursor: pointer;
  font: inherit;
  font-size: var(--text-sm);
  font-weight: var(--font-semibold);
  transition: color var(--dur-fast), background var(--dur-fast);
}

.rc-nav__item .icon {
  width: 17px;
  height: 17px;
}

.rc-nav__item:hover {
  background: color-mix(in srgb, var(--color-surface-hover) 72%, transparent);
  color: var(--color-fg);
}

.rc-nav__item.is-active {
  background: var(--color-surface);
  color: var(--color-primary);
}

.rc-nav__item.is-active::after {
  position: absolute;
  right: var(--space-3);
  bottom: 0;
  left: var(--space-3);
  height: 3px;
  border-radius: var(--radius-full) var(--radius-full) 0 0;
  background: linear-gradient(90deg, var(--color-primary), color-mix(in srgb, var(--color-primary) 58%, var(--color-fg)));
  content: '';
}

.rc-hub__body {
  min-width: 0;
  padding-bottom: var(--space-8);
}

.rc-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-5);
  margin-bottom: var(--space-5);
}

.rc-section-head h2 {
  margin: 0;
  font-size: var(--text-xl);
  letter-spacing: -.025em;
}

.rc-section-head p {
  margin: 5px 0 0;
  color: var(--color-fg-muted);
  font-size: var(--text-sm);
}

.rc-primary-action {
  gap: var(--space-2);
  min-height: 44px;
  padding-inline: var(--space-5);
  box-shadow: 0 10px 24px color-mix(in srgb, var(--color-primary) 20%, transparent);
}

.rc-primary-action > span {
  font-size: var(--text-lg);
  font-weight: var(--font-normal);
  line-height: 1;
}

.rc-toolbar {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(150px, .42fr) minmax(160px, .42fr);
  gap: var(--space-3);
  margin-bottom: var(--space-5);
  padding: var(--space-3);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-xs);
}

.rc-view--candidates .rc-toolbar {
  grid-template-columns: minmax(240px, 520px);
}

.rc-toolbar .people-search,
.rc-toolbar .people-filter {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  margin: 0;
  border-radius: var(--radius-lg);
}

.rc-toolbar .people-search input {
  padding-left: var(--space-10);
}

.job-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(310px, 100%), 1fr));
  gap: var(--space-5);
}

.job-card {
  position: relative;
  overflow: hidden;
  min-height: 188px;
  padding: var(--space-5);
  border-color: color-mix(in srgb, var(--color-border) 86%, transparent);
  border-radius: var(--radius-xl);
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--color-primary-soft) 13%, var(--color-surface)), var(--color-surface) 48%);
  box-shadow: var(--shadow-xs);
}

.job-card::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(180deg, var(--color-primary), color-mix(in srgb, var(--color-primary) 48%, transparent));
  content: '';
  opacity: 0;
  transition: opacity var(--dur-fast);
}

.job-card:hover {
  border-color: color-mix(in srgb, var(--color-primary) 28%, var(--color-border));
  box-shadow: var(--shadow-lg);
  transform: translateY(-3px);
}

.job-card:hover::before { opacity: 1; }

.job-card__head h3 {
  display: -webkit-box;
  min-width: 0;
  overflow: hidden;
  font-size: var(--text-lg);
  letter-spacing: -.02em;
  line-height: var(--leading-snug);
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.job-card__head > .status-badge {
  flex: 0 0 auto;
  max-width: 42%;
  text-align: center;
  white-space: normal;
}

.job-card__icon {
  width: 40px;
  height: 40px;
  border-radius: 13px;
}

.job-card__icon .icon {
  width: 19px;
  height: 19px;
}

.job-card__meta {
  line-height: var(--leading-relaxed);
  overflow-wrap: anywhere;
}

.job-card__count {
  margin-top: auto;
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border);
  color: var(--color-fg);
  font-weight: var(--font-semibold);
}

.rc-table-shell {
  overflow: hidden;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
}

.rc-candidates-table {
  width: 100%;
  table-layout: fixed;
  margin: 0;
}

.rc-candidates-table th:nth-child(1) { width: 34%; }
.rc-candidates-table th:nth-child(2) { width: 16%; }
.rc-candidates-table th:nth-child(3) { width: 25%; }
.rc-candidates-table th:nth-child(4) { width: 15%; }
.rc-candidates-table th:nth-child(5) { width: 10%; }

.rc-candidates-table th,
.rc-candidates-table td {
  overflow-wrap: anywhere;
}

.rc-candidates-table thead {
  background: var(--color-surface-2);
}

.rc-candidates-table th {
  height: 48px;
  color: var(--color-fg-subtle);
  font-size: var(--text-xs);
  letter-spacing: .04em;
  text-transform: uppercase;
}

.rc-candidates-table tbody tr {
  height: 68px;
  cursor: pointer;
  transition: background var(--dur-fast);
}

.rc-candidates-table tbody tr:hover {
  background: color-mix(in srgb, var(--color-primary-soft) 34%, var(--color-surface));
}

.rc-candidates-table .people-table__name span:last-child {
  min-width: 0;
  overflow-wrap: anywhere;
  font-weight: var(--font-semibold);
}

.rc-interview-card {
  position: relative;
  min-height: 84px;
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-xs);
  transition: border-color var(--dur-fast), box-shadow var(--dur-fast), transform var(--dur-fast);
}

.rc-interview-card::before {
  flex: 0 0 4px;
  width: 4px;
  height: 36px;
  border-radius: var(--radius-full);
  background: var(--color-primary);
  content: '';
}

.rc-interview-card .meet-card__people {
  flex: 1 1 auto;
  min-width: 0;
}

.rc-interview-card .meet-card__people > div:last-child {
  min-width: 0;
}

.rc-interview-card .meet-card__name,
.rc-interview-card .lv-item__dates {
  overflow-wrap: anywhere;
}

.rc-interview-card > .status-badge {
  flex: 0 0 auto;
  max-width: 34%;
  text-align: center;
  white-space: normal;
}

.rc-interview-card:hover {
  border-color: color-mix(in srgb, var(--color-primary) 28%, var(--color-border));
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
}

.rc-view--interviews .pr-subhead {
  margin: var(--space-6) 0 var(--space-3);
  color: var(--color-fg-muted);
  font-size: var(--text-xs);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.hiring-plan-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-top: auto;
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border);
}

.hiring-plan-card__open {
  color: var(--color-primary);
  font-size: var(--text-xs);
  font-weight: var(--font-semibold);
}

.rc-view--work > .pr-toolbar {
  margin-bottom: var(--space-5);
  padding: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  background: var(--color-surface);
  box-shadow: var(--shadow-xs);
}

.rc-view--work .task-card,
.rc-view--work .meet-card,
.rc-view--work .doc-card {
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-xs);
}

.rc-board-back {
  display: inline-flex;
  margin-bottom: var(--space-4);
}

.rc-board-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
  margin-bottom: var(--space-5);
  padding: var(--space-5) var(--space-6);
  border-radius: var(--radius-xl);
  background:
    radial-gradient(circle at 90% 0%, color-mix(in srgb, var(--color-primary) 12%, transparent), transparent 38%),
    var(--color-surface);
  box-shadow: var(--shadow-sm);
}

.rc-board-head__main {
  display: flex;
  align-items: flex-start;
  min-width: 0;
  gap: var(--space-4);
}

.rc-board-head__main > div {
  min-width: 0;
}

.rc-board-head__icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 15px;
  background: var(--color-primary-soft);
  color: var(--color-primary);
}

.rc-board-head__icon .icon {
  width: 23px;
  height: 23px;
}

.rc-board-head h1 {
  margin: 0;
  font-size: clamp(1.45rem, 3vw, 2rem);
  letter-spacing: -.035em;
  line-height: var(--leading-snug);
  overflow-wrap: anywhere;
}

.rc-pipeline-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
  margin-bottom: var(--space-4);
  padding: var(--space-4) var(--space-5);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  background: var(--color-surface);
  box-shadow: var(--shadow-xs);
}

.rc-pipeline-bar__title {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: var(--space-3);
}

.rc-pipeline-bar__title > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}

.rc-pipeline-bar__title strong {
  color: var(--color-fg);
  font-size: var(--text-sm);
}

.rc-pipeline-bar__title > div > span {
  color: var(--color-fg-muted);
  font-size: var(--text-xs);
}

.rc-pipeline-bar__icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  border-radius: var(--radius-md);
  background: var(--color-primary-soft);
  color: var(--color-primary);
}

.rc-pipeline-bar__icon .icon {
  width: 18px;
  height: 18px;
}

.rc-pipeline-stats {
  display: flex;
  align-items: stretch;
  flex: 0 0 auto;
  gap: var(--space-2);
}

.rc-pipeline-stats > span {
  display: flex;
  align-items: baseline;
  gap: 6px;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-surface-2);
  color: var(--color-fg-muted);
  font-size: var(--text-xs);
  white-space: nowrap;
}

.rc-pipeline-stats b {
  color: var(--color-fg);
  font-size: var(--text-base);
  font-variant-numeric: tabular-nums;
}

.kanban-shell {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--color-surface-2) 68%, transparent), transparent 9%, transparent 91%, color-mix(in srgb, var(--color-surface-2) 68%, transparent)),
    var(--color-surface-2);
}

.kanban-board {
  gap: var(--space-3);
  margin: 0;
  padding: var(--space-4);
  scroll-snap-type: x proximity;
  scrollbar-color: color-mix(in srgb, var(--color-primary) 28%, var(--color-border)) transparent;
}

.kanban-column {
  flex-basis: 304px;
  overflow: hidden;
  border-color: color-mix(in srgb, var(--color-border) 84%, transparent);
  border-radius: var(--radius-xl);
  background: color-mix(in srgb, var(--color-surface) 82%, var(--color-surface-2));
  box-shadow: var(--shadow-xs);
  scroll-snap-align: start;
}

.kanban-column__head {
  align-items: flex-start;
  min-height: 68px;
  padding: var(--space-3) var(--space-4);
  background: color-mix(in srgb, var(--color-surface) 88%, transparent);
}

.kanban-column__title {
  display: flex;
  align-items: flex-start;
  min-width: 0;
  gap: var(--space-2);
}

.kanban-column__title > span:last-child {
  min-width: 0;
  padding-top: 2px;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  line-height: var(--leading-snug);
}

.kanban-column__index {
  flex: 0 0 auto;
  padding-top: 3px;
  color: var(--color-fg-subtle);
  font-size: 10px;
  font-weight: var(--font-bold);
  letter-spacing: .06em;
}

.kanban-count {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  min-width: 26px;
  height: 26px;
  background: var(--color-primary-soft);
  color: var(--color-primary);
  font-weight: var(--font-bold);
}

.kanban-drop {
  position: relative;
  gap: var(--space-3);
  min-height: 148px;
  padding: var(--space-3);
}

.kanban-drop:empty::before {
  display: grid;
  place-items: center;
  min-height: 118px;
  padding: var(--space-4);
  border: 1px dashed color-mix(in srgb, var(--color-border-strong) 72%, transparent);
  border-radius: var(--radius-lg);
  color: var(--color-fg-subtle);
  content: attr(data-empty-label);
  font-size: var(--text-xs);
  line-height: var(--leading-relaxed);
  text-align: center;
}

.kanban-drop.drag-over:empty::before {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.candidate-card {
  position: relative;
  display: flex;
  min-height: 132px;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-4);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xs);
}

.candidate-card:hover {
  border-color: color-mix(in srgb, var(--color-primary) 30%, var(--color-border));
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.candidate-card:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--color-primary) 24%, transparent);
  outline-offset: 2px;
}

.candidate-card__top {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: var(--space-3);
}

.candidate-card__main {
  flex: 1;
  min-width: 0;
}

.candidate-card__name {
  font-size: var(--text-base);
}

.candidate-card__src {
  display: inline-flex;
  max-width: 100%;
  margin-top: 4px;
  padding: 2px 8px;
  border-radius: var(--radius-full);
  background: var(--color-surface-2);
  color: var(--color-fg-muted);
  font-weight: var(--font-medium);
}

.candidate-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  margin-top: auto;
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border);
}

.candidate-card__rating {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: var(--space-2);
  color: var(--color-fg-subtle);
  font-size: 11px;
}

.candidate-card__stars {
  letter-spacing: 1px;
  white-space: nowrap;
}

.candidate-card__open {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 25px;
  height: 25px;
  border-radius: var(--radius-full);
  background: var(--color-primary-soft);
  color: var(--color-primary);
  font-weight: var(--font-bold);
}

.drawer {
  width: min(540px, 96vw);
  border-left: 0;
  border-radius: var(--radius-xl) 0 0 var(--radius-xl);
}

.drawer__head {
  padding: var(--space-6);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--color-primary-soft) 45%, var(--color-surface)), var(--color-surface));
}

.drawer__head > div,
.drawer__head > div > div {
  min-width: 0;
}

.drawer__head h2 {
  margin: 0;
  font-size: var(--text-xl);
  letter-spacing: -.025em;
  line-height: var(--leading-snug);
  overflow-wrap: anywhere;
}

.drawer__body {
  gap: var(--space-4);
  padding: var(--space-5) var(--space-6) var(--space-8);
}

.drawer-section {
  padding: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
}

.drawer-section h3 {
  margin-bottom: var(--space-3);
  color: var(--color-fg);
  font-size: var(--text-sm);
}

.stage-progress {
  padding: var(--space-2) 0;
}

.stage-dot {
  height: 7px;
}

.drawer-stage-row {
  padding: var(--space-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface-2);
}

.drawer-stage-row .status-badge {
  min-width: 0;
  max-width: calc(100% - 96px);
  text-align: center;
  white-space: normal;
}

.drawer .info-grid__row {
  min-width: 0;
}

.drawer .info-grid__row dd,
.drawer-section p,
.note-item__body {
  overflow-wrap: anywhere;
}

.drawer .note-form {
  flex-wrap: wrap;
}

.drawer .note-form .modal-input {
  flex: 1 1 180px;
}

.candidate-drawer {
  width: min(600px, 96vw);
  background: var(--color-bg);
}

.candidate-drawer .candidate-drawer__head {
  position: sticky;
  z-index: 3;
  top: 0;
  align-items: center;
  padding: var(--space-5) var(--space-6);
  border-bottom-color: color-mix(in srgb, var(--color-primary) 14%, var(--color-border));
  background:
    radial-gradient(circle at 90% -55%, color-mix(in srgb, var(--color-primary) 18%, transparent), transparent 48%),
    linear-gradient(135deg, color-mix(in srgb, var(--color-primary-soft) 42%, var(--color-surface)), var(--color-surface) 66%);
  backdrop-filter: blur(14px);
}

.candidate-drawer__identity {
  align-items: center;
}

.candidate-drawer__eyebrow {
  display: block;
  margin-bottom: 2px;
  color: var(--color-primary);
  font-size: 10px;
  font-weight: var(--font-bold);
  letter-spacing: .085em;
  text-transform: uppercase;
}

.candidate-drawer .drawer__body {
  gap: var(--space-3);
  padding-top: var(--space-4);
}

.candidate-drawer__workflow {
  padding: var(--space-4);
  border: 1px solid color-mix(in srgb, var(--color-primary) 16%, var(--color-border));
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--color-primary-soft) 28%, var(--color-surface));
  box-shadow: var(--shadow-xs);
}

.candidate-drawer__workflow-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-2);
  color: var(--color-fg-muted);
  font-size: var(--text-xs);
  font-weight: var(--font-semibold);
}

.candidate-drawer__workflow-head strong {
  color: var(--color-primary);
  font-variant-numeric: tabular-nums;
}

.candidate-drawer__workflow .drawer-stage-row {
  padding: 0;
  border: 0;
  background: transparent;
}

.candidate-drawer__workflow .drawer-stage-row .btn {
  width: 42px;
  height: 38px;
  padding: 0;
  background: var(--color-surface);
}

.candidate-drawer__overview {
  display: grid;
  grid-template-columns: minmax(150px, .7fr) minmax(0, 1.3fr);
  gap: var(--space-3);
}

.candidate-drawer .drawer-section {
  padding: var(--space-4) var(--space-5);
  border-radius: 16px;
  box-shadow: var(--shadow-xs);
}

.candidate-drawer .drawer-section h3 {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-4);
}

.candidate-drawer__section-icon {
  display: inline-grid;
  place-items: center;
  width: 27px;
  height: 27px;
  flex: 0 0 27px;
  border-radius: 9px;
  background: var(--color-primary-soft);
  color: var(--color-primary);
  font-size: 13px;
}

.candidate-drawer__section-icon .icon {
  width: 14px;
  height: 14px;
}

.candidate-drawer__rating .rating {
  display: flex;
  gap: 3px;
  font-size: var(--text-xl);
}

.candidate-drawer__contacts .info-grid__row {
  grid-template-columns: minmax(92px, .75fr) minmax(0, 1.25fr);
}

.candidate-drawer .tag-chip-list:empty {
  display: none;
}

.candidate-drawer .tag-chip-list {
  margin: 0 0 var(--space-3);
}

.candidate-drawer .doc-list {
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}

.candidate-drawer .doc-item {
  min-width: 0;
  padding: var(--space-3);
  border-radius: 12px;
  background: var(--color-surface-2);
}

.candidate-drawer #cv-mode {
  width: fit-content;
  margin: var(--space-2) 0 var(--space-3);
}

.candidate-drawer .candidate-upload-form {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(130px, .8fr) auto;
  gap: var(--space-2);
  margin: 0;
}

.candidate-upload-form .modal-input,
.candidate-upload-form .file-picker {
  width: 100%;
  min-width: 0;
}

.candidate-drawer__add {
  width: 42px;
  min-width: 42px;
  height: 42px;
  padding: 0;
  border-radius: 12px;
  font-size: var(--text-lg);
}

.candidate-drawer .candidate-note-form {
  flex-wrap: nowrap;
}

.candidate-drawer .note-item {
  padding: var(--space-3) var(--space-4);
  border-radius: 12px;
}

.note-item {
  border: 1px solid var(--color-border);
  background: var(--color-surface-2);
}

.recruiting-modal {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--color-primary) 14%, var(--color-border));
  border-radius: 24px;
  box-shadow: 0 32px 90px color-mix(in srgb, var(--color-fg) 24%, transparent);
}

.recruiting-modal .modal__head {
  flex: 0 0 auto;
  position: relative;
  padding: var(--space-6) var(--space-8) var(--space-5);
  background:
    radial-gradient(circle at 88% -20%, color-mix(in srgb, var(--color-primary) 16%, transparent), transparent 42%),
    linear-gradient(135deg, color-mix(in srgb, var(--color-primary-soft) 38%, var(--color-surface)), var(--color-surface));
}

.recruiting-modal .modal__icon {
  width: 44px;
  height: 44px;
  border-radius: 14px;
}

.recruiting-modal .modal__title {
  line-height: var(--leading-snug);
  overflow-wrap: anywhere;
  font-size: var(--text-xl);
  letter-spacing: -.03em;
}

.recruiting-modal .modal__subtitle {
  max-width: 520px;
  margin-top: var(--space-2);
  line-height: var(--leading-relaxed);
  overflow-wrap: anywhere;
}

.recruiting-modal .modal__close {
  width: 38px;
  height: 38px;
  border: 1px solid var(--color-border);
  background: color-mix(in srgb, var(--color-surface) 82%, transparent);
}

.recruiting-modal .modal__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: var(--space-6) var(--space-8) var(--space-8);
}

.recruiting-modal .modal-form {
  gap: var(--space-5);
}

.recruiting-modal .modal-label {
  gap: 7px;
  color: var(--color-fg-muted);
  font-size: var(--text-xs);
  font-weight: var(--font-semibold);
}

.recruiting-modal .modal-input {
  min-height: 46px;
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  color: var(--color-fg);
  font-size: var(--text-sm);
  font-weight: var(--font-normal);
}

.recruiting-modal textarea.modal-input {
  min-height: 112px;
  padding-top: var(--space-3);
  line-height: var(--leading-relaxed);
  resize: vertical;
}

.recruiting-modal .modal-actions {
  position: sticky;
  z-index: 3;
  bottom: 0;
  flex-wrap: wrap;
  margin: var(--space-2) calc(-1 * var(--space-8)) calc(-1 * var(--space-8));
  padding: var(--space-4) var(--space-8);
  border-top: 1px solid var(--color-border);
  background: var(--color-surface-2);
}

@media (max-height: 760px) {
  .recruiting-modal .modal__head {
    padding-block: var(--space-4);
  }

  .recruiting-modal .modal__body {
    padding-top: var(--space-5);
  }

  .recruiting-modal .modal-form {
    gap: var(--space-4);
  }

  .recruiting-modal textarea.modal-input {
    min-height: 88px;
  }
}

.recruiting-modal .modal-actions .btn {
  max-width: 100%;
  min-height: 42px;
  padding-inline: var(--space-5);
  white-space: normal;
}

@media (max-width: 820px) {
  .rc-hub__hero { padding-inline: var(--space-5); }
  .rc-toolbar { grid-template-columns: 1fr 1fr; }
  .rc-toolbar .people-search { grid-column: 1 / -1; }
  .rc-view--candidates .rc-toolbar { grid-template-columns: 1fr; }
  .rc-table-shell { overflow-x: auto; }
  .rc-candidates-table { min-width: 720px; }
  .rc-board-head { align-items: stretch; flex-direction: column; }
  .rc-board-head .rc-primary-action { align-self: flex-start; }
  .rc-pipeline-bar { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 1080px) {
  .job-grid {
    grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr));
    gap: var(--space-4);
  }

  .job-card {
    padding: var(--space-4);
  }
}

@media (max-width: 640px) {
  .rc-hub__hero {
    margin-inline: calc(-1 * var(--space-2));
    padding: var(--space-5) var(--space-4) 0;
    border-radius: var(--radius-xl);
  }
  .rc-hub__hero > p { margin-bottom: var(--space-4); }
  .rc-nav__item { min-height: 44px; padding-inline: var(--space-3); }
  .rc-section-head { align-items: stretch; flex-direction: column; }
  .rc-section-head .rc-primary-action { width: 100%; }
  .rc-toolbar { grid-template-columns: 1fr; }
  .rc-toolbar .people-search { grid-column: auto; }
  .rc-board-head { padding: var(--space-4); }
  .rc-board-head__main { gap: var(--space-3); }
  .rc-board-head__icon { width: 42px; height: 42px; }
  .rc-pipeline-bar { padding: var(--space-4); }
  .rc-pipeline-stats { width: 100%; }
  .rc-pipeline-stats > span { flex: 1; white-space: normal; }
  .kanban-board { padding: var(--space-3); }
  .kanban-column { flex-basis: min(86vw, 304px); }
  .drawer { width: 100vw; max-width: 100vw; border-radius: 0; }
  .drawer__head, .drawer__body { padding-inline: var(--space-4); }
  .candidate-drawer__overview { grid-template-columns: 1fr; }
  .candidate-drawer .candidate-upload-form { grid-template-columns: minmax(0, 1fr) auto; }
  .candidate-upload-form #cv-name { grid-column: 1 / -1; grid-row: 2; }
  .recruiting-modal .modal__head,
  .recruiting-modal .modal__body { padding-inline: var(--space-5); }
  .recruiting-modal .modal-actions {
    align-items: stretch;
    flex-direction: column-reverse;
    margin-inline: calc(-1 * var(--space-5));
    padding-inline: var(--space-5);
  }
  .recruiting-modal .modal-actions .btn { width: 100%; }
}

@media (max-width: 480px) {
  .job-card__head {
    align-items: stretch;
    flex-direction: column;
  }

  .job-card__head > .status-badge {
    align-self: flex-start;
    max-width: 100%;
  }

  .hiring-plan-card__footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .rc-interview-card {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .rc-interview-card > .status-badge {
    margin-left: 8px;
    max-width: calc(100% - 12px);
  }
}
