/* ============================================================
   SISTEMAATS — LUMEN RH
   Estilo visual baseado nos prints do sistema original
   ============================================================ */

:root {
  --roxo-1: #6d28d9;
  --roxo-2: #4c1d95;
  --roxo-grad: linear-gradient(160deg, #7c3aed 0%, #6d28d9 45%, #4338ca 100%);
  --azul: #2563eb;
  --verde: #059669;
  --amarelo: #d97706;
  --vermelho: #dc2626;
  --cinza-50: #f8f8fb;
  --cinza-100: #f1f1f6;
  --cinza-200: #e5e5ee;
  --cinza-400: #9797a8;
  --cinza-600: #5c5c6e;
  --cinza-800: #2b2b38;
  --texto: #24242e;
  --borda: #e6e6ef;
  --branco: #ffffff;
  --raio: 10px;
  --raio-lg: 16px;
  --sombra: 0 1px 3px rgba(24, 24, 40, .06), 0 1px 2px rgba(24,24,40,.08);
  --sombra-lg: 0 12px 32px rgba(24,24,40,.14);
  --sidebar-w: 220px;
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  background: var(--cinza-50);
  color: var(--texto);
  font-size: 14px;
  line-height: 1.45;
}
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
ul { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { margin: 0; }
input, select, textarea, button { font-family: inherit; font-size: 14px; }

/* ---------- Layout ---------- */
.app-shell { display: flex; min-height: 100vh; }

.sidebar {
  width: var(--sidebar-w);
  flex: 0 0 var(--sidebar-w);
  background: var(--branco);
  color: var(--texto);
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  border-right: 1px solid var(--borda);
  overflow: hidden;
  transition: width .2s ease, flex-basis .2s ease, transform .2s ease;
}
.sidebar-brand {
  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid var(--borda);
}
.sidebar-brand-logo { display: block; max-width: 100%; object-fit: contain; }
.sidebar-brand-logo-wide { width: 192px; height: auto; border-radius: 9px; }
.sidebar-brand-logo-square { display: none; width: 42px; height: 42px; border-radius: 9px; }
.sidebar-brand .logo-mark {
  width: 36px; height: 36px; border-radius: 9px;
  background: var(--roxo-grad);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 15px; letter-spacing: .5px;
  color: #fff;
  border: none;
}
.sidebar-brand .brand-text { line-height: 1.15; white-space: nowrap; }
.sidebar-brand .brand-text b { display: block; font-size: 15px; letter-spacing: 2px; font-weight: 700; color: var(--texto); }
.sidebar-brand .brand-text span { display: block; font-size: 9px; letter-spacing: 1.5px; opacity: .6; text-transform: uppercase; color: var(--cinza-600); }

.sidebar-nav { padding: 14px 12px; flex: 1; overflow-y: auto; }
.sidebar-nav .nav-item {
  display: flex; align-items: center; gap: 11px;
  padding: 10px 12px; margin-bottom: 2px;
  border-radius: 9px; color: var(--cinza-600); font-size: 13.5px; font-weight: 500;
  transition: background .12s ease, color .12s ease;
}
.sidebar-nav .nav-item svg { color: var(--cinza-400); transition: color .12s ease; }
.sidebar-nav .nav-item:hover { background: var(--cinza-50); color: var(--texto); }
.sidebar-nav .nav-item:hover svg { color: var(--roxo-1); }
.sidebar-nav .nav-item.active { background: #ede9fe; color: var(--roxo-2); font-weight: 700; }
.sidebar-nav .nav-item.active svg { color: var(--roxo-2); }
.sidebar-nav .nav-item svg { width: 17px; height: 17px; flex: none; }

.sidebar-footer {
  padding: 14px 16px; border-top: 1px solid var(--borda);
  display: flex; flex-direction: column; align-items: stretch; gap: 10px;
}
.sidebar-user-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.sidebar-settings {
  display: flex; align-items: center; gap: 9px; padding: 9px 10px; margin: -4px -4px 0;
  border-radius: 8px; color: var(--cinza-600); font-size: 13px; font-weight: 600;
}
.sidebar-settings:hover { background: var(--cinza-50); color: var(--roxo-1); }
.sidebar-settings.active { background: #ede9fe; color: var(--roxo-2); }
.sidebar-settings svg { width: 17px; height: 17px; flex: none; }
.sidebar-footer .who { font-size: 12px; color: var(--texto); }
.sidebar-footer .who b { display: block; font-size: 13px; }
.sidebar-footer .logout-btn {
  background: var(--cinza-50); color: var(--texto); border: 1px solid var(--borda);
  padding: 6px 10px; border-radius: 7px; font-size: 12px; display: flex; align-items: center; gap: 5px;
}
.sidebar-footer .logout-btn:hover { background: var(--cinza-100); }

body.sidebar-collapsed .sidebar {
  width: 72px;
  flex-basis: 72px;
}
body.sidebar-collapsed .sidebar-brand {
  padding: 14px;
}
body.sidebar-collapsed .sidebar-brand-logo-wide { display: none; }
body.sidebar-collapsed .sidebar-brand-logo-square { display: block; }
body.sidebar-collapsed .sidebar-brand .brand-text,
body.sidebar-collapsed .sidebar-nav .nav-item span,
body.sidebar-collapsed .sidebar-footer .who,
body.sidebar-collapsed .sidebar-footer .logout-btn span,
body.sidebar-collapsed .sidebar-settings span {
  display: none;
}
body.sidebar-collapsed .sidebar-nav { padding-left: 12px; padding-right: 12px; }
body.sidebar-collapsed .sidebar-nav .nav-item {
  justify-content: center;
  gap: 0;
  padding-left: 0;
  padding-right: 0;
}
body.sidebar-collapsed .sidebar-footer { justify-content: center; align-items: center; padding-left: 12px; padding-right: 12px; }
body.sidebar-collapsed .sidebar-footer .logout-btn { padding: 7px; }
body.sidebar-collapsed .sidebar-settings { padding: 8px; margin: 0; }
body.sidebar-collapsed .sidebar-user-row { justify-content: center; }

/* ---------- Configurações ---------- */
.settings-shell { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 18px; align-items: start; }
.settings-menu, .settings-content { background: var(--branco); border: 1px solid var(--borda); border-radius: 12px; box-shadow: var(--sombra); }
.settings-menu { padding: 12px; }
.settings-menu-title { padding: 6px 9px 11px; color: var(--cinza-400); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .7px; }
.settings-menu-item { display: flex; align-items: center; gap: 9px; padding: 10px; border-radius: 8px; color: var(--cinza-600); font-weight: 600; font-size: 13px; }
.settings-menu-item.active { background: #ede9fe; color: var(--roxo-2); }
.settings-menu-item svg { width: 17px; height: 17px; }
.settings-content { padding: 22px; }
.settings-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 18px; border-bottom: 1px solid var(--borda); }
.settings-heading h2 { font-size: 18px; }
.settings-heading p, .settings-test-card p { margin: 4px 0 0; color: var(--cinza-600); font-size: 13px; }
.settings-form { padding-top: 18px; }
.settings-toggle-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px; background: var(--cinza-50); border-radius: 10px; }
.settings-toggle-row b, .settings-toggle-row span { display: block; }
.settings-toggle-row span { color: var(--cinza-600); font-size: 12px; margin-top: 2px; }
.switch input { position: absolute; opacity: 0; }
.switch > span { width: 42px; height: 24px; margin: 0; border-radius: 999px; background: var(--cinza-200); padding: 3px; transition: .18s; cursor: pointer; }
.switch > span::after { content: ''; display: block; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.18); transition: .18s; }
.switch input:checked + span { background: var(--roxo-1); }
.switch input:checked + span::after { transform: translateX(18px); }
.settings-section-title { margin: 22px 0 12px; padding-bottom: 7px; border-bottom: 1px solid var(--borda); font-size: 12px; font-weight: 700; color: var(--cinza-600); text-transform: uppercase; letter-spacing: .5px; }
.password-field { display: flex; position: relative; }
.password-field input { padding-right: 44px; }
.password-toggle { position: absolute; right: 5px; top: 50%; transform: translateY(-50%); width: 34px; height: 32px; border: 0; background: transparent; color: var(--cinza-600); }
.password-toggle svg { width: 16px; height: 16px; }
.settings-form-actions { display: flex; justify-content: flex-end; margin-top: 22px; }
.settings-test-card { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 22px; padding: 17px; border: 1px solid var(--borda); border-radius: 10px; background: var(--cinza-50); }
.settings-test-card h3 { font-size: 14px; }
.settings-test-action { display: flex; gap: 8px; min-width: min(100%, 430px); }
.settings-test-action input {
  min-width: 260px; height: 38px; padding: 0 13px;
  border: 1px solid var(--borda); border-radius: 9px;
  background: #fff; color: var(--texto); outline: none;
}
.settings-test-action input:focus {
  border-color: var(--roxo-1); box-shadow: 0 0 0 3px rgba(124,58,237,.12);
}
@media (max-width: 820px) {
  .settings-shell { grid-template-columns: 1fr; }
  .settings-test-card, .settings-test-action { align-items: stretch; flex-direction: column; }
  .settings-test-action input { width: 100%; min-width: 0; }
}

.main {
  flex: 1; min-width: 0; display: flex; flex-direction: column; height: 100vh; overflow-y: auto;
}
.topbar {
  display: flex; align-items: center; gap: 16px;
  padding: 16px 28px; background: var(--branco); border-bottom: 1px solid var(--borda);
  position: sticky; top: 0; z-index: 20;
}
.sidebar-toggle {
  width: 38px; height: 38px; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0; border: 1px solid var(--borda); border-radius: 9px;
  background: var(--branco); color: var(--cinza-600);
  transition: background .12s ease, color .12s ease, border-color .12s ease;
}
.sidebar-toggle:hover { background: var(--cinza-100); color: var(--roxo-1); }
.sidebar-toggle:focus-visible { outline: 2px solid var(--roxo-1); outline-offset: 2px; }
.sidebar-toggle svg { width: 18px; height: 18px; }
.topbar .search {
  flex: 1; max-width: 480px; position: relative;
}
.topbar .search input {
  width: 100%; padding: 9px 14px 9px 36px; border: 1px solid var(--borda); border-radius: 9px;
  background: var(--cinza-50); outline: none;
}
.topbar .search input:focus { border-color: var(--roxo-1); background: #fff; }
.topbar .search svg { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); width: 15px; height: 15px; color: var(--cinza-400); }
.topbar .spacer { flex: 1; }
.topbar .btn-primary { white-space: nowrap; }
.avatar-chip {
  width: 34px; height: 34px; border-radius: 50%;
  background: var(--roxo-grad); color: #fff; display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 12.5px;
}

.content { padding: 24px 28px 60px; }
.page-header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 20px; gap: 16px; flex-wrap: wrap; }
.page-header h1 { font-size: 22px; font-weight: 700; }
.page-header .sub { color: var(--cinza-600); font-size: 13px; margin-top: 3px; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; gap: 7px; justify-content: center;
  padding: 9px 16px; border-radius: 9px; border: 1px solid var(--borda);
  background: #fff; color: var(--texto); font-weight: 600; font-size: 13.5px;
  transition: all .12s ease;
}
.btn:hover { background: var(--cinza-100); }
.btn svg { width: 15px; height: 15px; }
.btn-primary { background: var(--roxo-grad); color: #fff; border: none; box-shadow: 0 2px 8px rgba(109,40,217,.35); }
.btn-primary:hover { background: linear-gradient(160deg, #6d28d9 0%, #5b21b6 45%, #3730a3 100%); color: #fff; box-shadow: 0 4px 14px rgba(76,29,149,.45); }
.btn-primary:active { background: linear-gradient(160deg, #5b21b6 0%, #4c1d95 45%, #312e81 100%); box-shadow: 0 2px 6px rgba(76,29,149,.4); }
.btn-primary:focus-visible { outline: 2px solid #4c1d95; outline-offset: 2px; }
.btn-danger { background: #fff; color: var(--vermelho); border-color: #f3caca; }
.btn-danger:hover { background: #fff5f5; }
.btn-sm { padding: 6px 10px; font-size: 12.5px; border-radius: 7px; }
.btn-icon { padding: 7px; border-radius: 7px; }
.btn-block { width: 100%; }
.btn[disabled] { opacity: .5; cursor: not-allowed; }

/* ---------- Cards / panels ---------- */
.card { background: #fff; border: 1px solid var(--borda); border-radius: var(--raio-lg); padding: 20px; box-shadow: var(--sombra); }
.card + .card { margin-top: 16px; }
.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; margin-bottom: 20px; }
.stat-card { background: #fff; border: 1px solid var(--borda); border-radius: var(--raio-lg); padding: 16px 18px; }
.stat-card .label { font-size: 12px; color: var(--cinza-600); font-weight: 600; text-transform: uppercase; letter-spacing: .4px; }
.stat-card .value { font-size: 26px; font-weight: 800; margin-top: 6px; }
.stat-card .delta { font-size: 12px; margin-top: 4px; color: var(--cinza-600); }

/* ---------- Dashboard (Início) ---------- */
.stat-grid.dash-stats { grid-template-columns: repeat(5, 1fr); }
.stat-card.mini { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; }
.icon-badge {
  display: flex; align-items: center; justify-content: center; flex: none;
}
.stat-card.mini .icon-badge {
  width: 38px; height: 38px; border-radius: 11px;
}
.stat-card.mini .icon-badge svg { width: 19px; height: 19px; }
.stat-card.mini .stat-body { min-width: 0; }
.stat-card.mini .value { font-size: 21px; margin-top: 1px; }
.stat-card.mini .label { font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.icon-badge.bg-roxo   { background: #f1e9ff; color: #6d28d9; }
.icon-badge.bg-azul   { background: #e8f0ff; color: #1d4ed8; }
.icon-badge.bg-verde  { background: #e6f6ef; color: #0a7a52; }
.icon-badge.bg-amarelo{ background: #fef3e0; color: #b5730a; }
.icon-badge.bg-vermelho{ background: #fdecec; color: #c62727; }
.icon-badge.bg-cinza  { background: var(--cinza-100); color: var(--cinza-600); }

.today-badge {
  display: inline-flex; align-items: center; gap: 7px; padding: 7px 14px;
  border-radius: 999px; background: #f1e9ff; color: #6d28d9; font-weight: 700; font-size: 12.5px;
  white-space: nowrap;
}
.today-badge svg { width: 14px; height: 14px; }
.dash-hint { font-size: 11.5px; color: var(--cinza-400); margin-top: 4px; }

.dash-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.dash-col { display: flex; flex-direction: column; gap: 16px; }

.card-title { display: flex; align-items: center; gap: 8px; font-size: 14.5px; font-weight: 700; margin-bottom: 14px; }
.card-title svg { width: 16px; height: 16px; color: var(--roxo-1); }
.card-title .count-pill { margin-left: auto; background: var(--cinza-100); color: var(--cinza-600); font-size: 11.5px; font-weight: 700; padding: 2px 9px; border-radius: 999px; }

.list-plain { display: flex; flex-direction: column; gap: 4px; }
.list-plain .empty-mini { color: var(--cinza-400); font-size: 12.5px; padding: 10px 2px; }

.entrevista-item, .vaga-venc-item, .parado-item {
  display: flex; align-items: center; gap: 11px; padding: 10px 4px; border-bottom: 1px solid var(--borda);
}
.entrevista-item:last-child, .vaga-venc-item:last-child, .parado-item:last-child { border-bottom: none; }
.item-avatar {
  width: 34px; height: 34px; border-radius: 50%; background: var(--roxo-grad); color: #fff;
  display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 12px; flex: none;
}
.item-body { min-width: 0; flex: 1; }
.item-title { font-weight: 600; font-size: 13.3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.item-sub { font-size: 11.5px; color: var(--cinza-600); margin-top: 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.item-meta { flex: none; text-align: right; }

.vaga-venc-item .icon-badge { width: 38px; height: 38px; border-radius: 11px; }
.vaga-venc-item .icon-badge svg { width: 19px; height: 19px; }

.funil-rapido .fr-row { margin-bottom: 12px; }
.funil-rapido .fr-row:last-child { margin-bottom: 0; }
.funil-rapido .fr-top { display: flex; align-items: center; justify-content: space-between; font-size: 12.5px; margin-bottom: 5px; }
.funil-rapido .fr-top .fr-label { font-weight: 600; color: var(--texto); }
.funil-rapido .fr-top .fr-count { color: var(--cinza-600); font-weight: 700; }
.funil-rapido .fr-bar { width: 100%; height: 7px; border-radius: 4px; background: var(--cinza-100); overflow: hidden; }
.funil-rapido .fr-bar > span { display: block; height: 100%; border-radius: 4px; }

@media (max-width: 1100px) {
  .stat-grid.dash-stats { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
  .stat-grid.dash-stats { grid-template-columns: repeat(2, 1fr); }
  .dash-grid { grid-template-columns: 1fr; }
}

/* ---------- Filtros ---------- */
.filters { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.filters select, .filters input {
  padding: 8px 12px; border: 1px solid var(--borda); border-radius: 8px; background: #fff; color: var(--texto);
}

/* ---------- Tabelas ---------- */
.table-wrap { background: #fff; border: 1px solid var(--borda); border-radius: var(--raio-lg); overflow: hidden; box-shadow: var(--sombra); }
table.data-table { width: 100%; border-collapse: collapse; }
table.data-table th {
  text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .5px;
  color: var(--cinza-600); font-weight: 700; padding: 12px 16px; border-bottom: 1px solid var(--borda); background: var(--cinza-50);
}
table.data-table td { padding: 14px 16px; border-bottom: 1px solid var(--borda); vertical-align: middle; }
table.data-table tr:last-child td { border-bottom: none; }
table.data-table tr:hover td { background: #fbfaff; }
.vagas-table-wrap { overflow: visible; }
.row-actions { position: relative; width: 1%; white-space: nowrap; }
.vaga-actions-inline { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.vaga-action-icon {
  width: 36px; height: 36px; min-width: 36px; min-height: 36px; padding: 0; border: 1px solid var(--borda); border-radius: 8px;
  background: var(--branco); color: var(--cinza-600);
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .12s ease, border-color .12s ease, color .12s ease;
}
.vaga-action-icon:hover { border-color: var(--cinza-300); background: var(--cinza-100); color: var(--roxo-1); }
.vaga-action-icon[disabled] { opacity: .35; cursor: not-allowed; }
.vaga-action-icon[disabled]:hover { border-color: var(--borda); background: var(--branco); color: var(--cinza-600); }
.vaga-action-icon:focus-visible { outline: 2px solid var(--roxo-1); outline-offset: 1px; }
.vaga-action-icon svg { width: 18px; height: 18px; }
.vaga-actions-menu-wrap { position: relative; }
.vaga-actions-menu {
  display: none; position: absolute; top: calc(100% + 8px); right: 0; z-index: 60;
  width: 186px; padding: 8px; border: 1px solid var(--borda); border-radius: 11px;
  background: var(--branco); box-shadow: var(--sombra-lg);
}
.vaga-actions-menu.open { display: block; }
.vaga-actions-menu button {
  width: 100%; padding: 10px 11px; border: none; border-radius: 7px;
  background: transparent; color: var(--texto); display: flex; align-items: center; gap: 10px;
  text-align: left; font-size: 13.5px; font-weight: 500;
}
.vaga-actions-menu button:hover { background: var(--cinza-50); }
.vaga-actions-menu button svg { width: 16px; height: 16px; flex: none; }
.vaga-actions-menu button.danger { color: var(--vermelho); }
.vaga-actions-menu button[disabled] { opacity: .45; cursor: not-allowed; }
.vaga-actions-menu button[disabled]:hover { background: transparent; }
.cell-title { font-weight: 600; }
.cell-title-button {
  padding: 0;
  border: none;
  background: none;
  color: var(--texto);
  text-align: left;
}
.cell-title-button:hover { color: var(--roxo-1); text-decoration: underline; }
.cell-sub { font-size: 12px; color: var(--cinza-600); margin-top: 2px; }

/* ---------- Badges ---------- */
.badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 700; }
.badge-verde   { background: #e6f6ef; color: #0a7a52; }
.badge-azul    { background: #e8f0ff; color: #1d4ed8; }
.badge-amarelo { background: #fef3e0; color: #b5730a; }
.badge-vermelho{ background: #fdecec; color: #c62727; }
.badge-cinza   { background: var(--cinza-100); color: var(--cinza-600); }
.badge-roxo    { background: #f1e9ff; color: #6d28d9; }
.vaga-pcd-badge { margin-left: 4px; padding: 2px 7px; font-size: 10px; vertical-align: middle; }

.progress-mini { width: 70px; height: 6px; border-radius: 4px; background: var(--cinza-200); overflow: hidden; }
.progress-mini > span { display: block; height: 100%; border-radius: 4px; }
.vagas-table-wrap table.data-table { table-layout: fixed; }
.vagas-table-wrap table.data-table th { padding: 12px 20px; }
.vagas-table-wrap table.data-table td { padding: 17px 20px; }
.vagas-table-wrap table.data-table th:nth-child(1) { width: 29%; }
.vagas-table-wrap table.data-table th:nth-child(2) { width: 17.5%; }
.vagas-table-wrap table.data-table th:nth-child(3) { width: 17.5%; }
.vagas-table-wrap table.data-table th:nth-child(4) { width: 20%; }
.vagas-table-wrap table.data-table th:nth-child(5) { width: 16%; }
@media (min-width: 881px) {
  .vagas-table-wrap table.data-table th:nth-child(3) {
    text-indent: clamp(-120px, -5.4vw, -76px);
  }
  .vagas-table-wrap table.data-table td:nth-child(3) {
    transform: translateX(clamp(-120px, -5.4vw, -76px));
  }
}
.vagas-table-wrap .vacancy-summary { margin-top: 4px; color: var(--cinza-700); line-height: 1.5; white-space: normal; }
.vacancy-candidate-total { display: flex; align-items: baseline; gap: 4px; color: var(--cinza-700); font-size: 12px; }
.vacancy-candidate-total b { color: var(--texto); font-size: 20px; line-height: 1; }
.vacancy-stage-bar { display: flex; width: 100%; height: 8px; margin-top: 7px; overflow: hidden; border-radius: 999px; background: var(--cinza-200); }
.vacancy-stage-bar span { display: block; height: 100%; min-width: 3px; }
.vacancy-stage-bar .stage-triagem { background: #4f8df7; }
.vacancy-stage-bar .stage-rh { background: #8b5cf6; }
.vacancy-stage-bar .stage-teste { background: #f7c948; }
.vacancy-stage-bar .stage-gestor { background: #f59e42; }
.vacancy-stage-bar .stage-proposta { background: #36c9b4; }
.vacancy-stage-bar .stage-aprovado { background: #35b96f; }
.vacancy-stage-bar .stage-reprovado { background: #f56b73; }
.vagas-table-wrap .vacancy-stage-summary { margin-top: 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vacancy-deadline-badge { display: inline-flex; align-items: center; min-height: 22px; padding: 3px 10px; border-radius: 999px; background: var(--cinza-100); color: var(--cinza-700); font-size: 11.5px; font-weight: 700; }
.vacancy-deadline-badge.vencido { background: #ffe3e5; color: #c8242f; }
.vacancy-deadline-badge.breve { background: #fff0c8; color: #9a5b00; }
.vagas-table-wrap .vacancy-deadline-text { margin-top: 5px; color: var(--cinza-700); }

/* ---------- Kanban / Funil ---------- */
.kanban-scroll-top { width: 100%; overflow-x: auto; overflow-y: hidden; height: 15px; margin: 0 0 8px; scrollbar-color: var(--cinza-400) transparent; }
.kanban-scroll-top > div { height: 1px; }
.kanban { display: flex; gap: 14px; overflow-x: auto; padding-bottom: 12px; align-items: flex-start; }
.kanban-col { background: #fff; border: 1px solid var(--borda); border-radius: var(--raio-lg); width: 250px; flex: 0 0 250px; display: flex; flex-direction: column; max-height: calc(100vh - 220px); }
.kanban-col-head { display: flex; align-items: center; justify-content: space-between; padding: 13px 14px; border-bottom: 1px solid var(--borda); font-weight: 700; font-size: 13px; }
.kanban-col-head .count { background: var(--cinza-100); color: var(--cinza-600); border-radius: 999px; padding: 1px 8px; font-size: 11.5px; }
.kanban-col-body { padding: 10px; overflow-y: auto; flex: 1; min-height: 60px; }
.kanban-col-body.drag-over { background: #f1e9ff; }
.kanban-empty { text-align: center; color: var(--cinza-400); font-size: 12px; padding: 22px 4px; border: 1.5px dashed var(--cinza-200); border-radius: 9px; }

.kanban-card {
  background: #fff; border: 1px solid var(--borda); border-radius: 11px; padding: 12px; margin-bottom: 10px;
  cursor: grab; box-shadow: var(--sombra);
}
.kanban-card:active { cursor: grabbing; }
.kanban-card.dragging { opacity: .4; }
.kanban-card .kc-head { display: flex; align-items: center; gap: 8px; }
.kanban-card .kc-avatar { width: 26px; height: 26px; border-radius: 50%; color: #fff; font-size: 10.5px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex: none; }
.kanban-card .kc-name { font-weight: 700; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kanban-card .kc-sub { font-size: 11.5px; color: var(--cinza-600); margin-left: 34px; margin-top: -2px; }
.kanban-card .kc-meta { display: flex; align-items: center; justify-content: space-between; margin-top: 9px; }
.kanban-card .kc-score { font-size: 11.5px; font-weight: 700; padding: 2px 7px; border-radius: 6px; }
.kanban-card .kc-days { font-size: 11px; color: var(--cinza-400); }
.kanban-card .kc-actions { display: flex; gap: 4px; margin-top: 9px; }
.kanban-card .kc-actions button { flex: 1; padding: 5px; border-radius: 6px; border: 1px solid var(--borda); background: var(--cinza-50); }
.kanban-card .kc-actions button:hover { background: var(--cinza-100); }
.kanban-card .kc-actions svg { width: 13px; height: 13px; }
.funil-top-filters { display: flex; align-items: center; gap: 9px; }
.funil-top-filters input,
.funil-top-filters select {
  height: 39px; padding: 8px 12px; border: 1px solid var(--borda); border-radius: 9px;
  background: #fff; color: var(--texto); outline: none;
}
.funil-top-filters input { width: 210px; }
.funil-top-filters select { width: 185px; }
.funil-top-filters input:focus,
.funil-top-filters select:focus { border-color: var(--roxo-1); box-shadow: 0 0 0 3px rgba(124,58,237,.1); }
@media (max-width: 640px) {
  .funil-top-filters { width: 100%; }
  .funil-top-filters input, .funil-top-filters select { width: 50%; }
}

/* ---------- Forms ---------- */
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.form-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.form-grid .full { grid-column: 1 / -1; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field label { font-size: 12.5px; font-weight: 600; color: var(--cinza-800); }
.field-label-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 16px; }
.field .field-inline-check { display: inline-flex; align-items: center; gap: 5px; color: var(--cinza-600); font-size: 11.5px; font-weight: 400; cursor: pointer; }
.field .field-inline-check input { width: 14px; height: 14px; margin: 0; padding: 0; accent-color: var(--roxo-1); box-shadow: none; }
.field .hint { font-size: 11.5px; color: var(--cinza-400); }
.field input, .field select, .field textarea {
  padding: 10px 12px; border: 1px solid var(--borda); border-radius: 9px; background: #fff; outline: none; width: 100%; color: var(--texto);
}
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--roxo-1); box-shadow: 0 0 0 3px rgba(124,58,237,.12); }
.field textarea { resize: vertical; min-height: 80px; }
.chips-input { display: flex; flex-wrap: wrap; gap: 6px; border: 1px solid var(--borda); border-radius: 9px; padding: 8px; min-height: 44px; }
.chip { display: inline-flex; align-items: center; gap: 6px; background: #f1e9ff; color: #6d28d9; padding: 3px 9px; border-radius: 999px; font-size: 12px; font-weight: 600; }
.chip button { background: none; border: none; color: inherit; font-size: 13px; line-height: 1; padding: 0; }
.chips-input input { border: none; outline: none; flex: 1; min-width: 120px; padding: 4px; }

.tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--borda); margin-bottom: 18px; }
.tabs button { padding: 11px 16px; border: none; background: none; font-weight: 600; font-size: 13.5px; color: var(--cinza-600); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.tabs button.active { color: var(--roxo-1); border-color: var(--roxo-1); }

/* Abas dos formulários de vaga: formato conectado ao conteúdo */
.tabs.tabs-form {
  gap: 3px;
  align-items: flex-end;
  margin-bottom: 18px;
  border-bottom: 1px solid var(--borda);
}
.tabs.tabs-form .tab-btn {
  margin-bottom: -1px;
  padding: 11px 16px 10px;
  border: 1px solid var(--borda);
  border-bottom-color: var(--borda);
  border-radius: 10px 10px 0 0;
  background: var(--cinza-50);
  color: var(--cinza-600);
  font-weight: 600;
  transition: background .12s ease, color .12s ease, border-color .12s ease;
}
.tabs.tabs-form .tab-btn:hover {
  background: var(--cinza-100);
  color: var(--texto);
}
.tabs.tabs-form .tab-btn.active {
  padding-top: 10px;
  border-top: 2px solid var(--roxo-1);
  border-right-color: var(--borda);
  border-bottom-color: var(--branco);
  border-left-color: var(--borda);
  background: var(--branco);
  color: var(--roxo-1);
}

/* ---------- Modal ---------- */
.modal-overlay { position: fixed; inset: 0; background: rgba(24,24,40,.45); display: none; align-items: center; justify-content: center; z-index: 100; padding: 20px; }
.modal-overlay.open { display: flex; }
.modal { background: #fff; border-radius: var(--raio-lg); width: 100%; max-width: 720px; max-height: 90vh; overflow: hidden; box-shadow: var(--sombra-lg); display: flex; flex-direction: column; }
.modal.modal-lg, .modal.modal-vaga-view { max-width: min(1480px, calc(100vw - 48px)); }
.modal-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px; border-bottom: 1px solid var(--borda); flex: 0 0 auto; background: #fff; z-index: 2; }
.modal-head h3 { font-size: 16px; }
.modal-body { padding: 22px; min-height: 0; overflow-y: auto; flex: 1 1 auto; }
.modal-foot { padding: 16px 22px; border-top: 1px solid var(--borda); display: flex; justify-content: flex-end; gap: 10px; flex: 0 0 auto; background: #fff; }
.modal > form { min-height: 0; display: flex; flex: 1 1 auto; flex-direction: column; }
.modal > form .modal-body { min-height: 0; overflow-y: auto; flex: 1 1 auto; }
.modal-close {
  width: 36px; height: 36px; flex: 0 0 36px; padding: 0;
  border: none; border-radius: 8px; background: none; color: var(--cinza-400);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 22px; line-height: 1;
}
.modal-close svg { width: 18px; height: 18px; }
.modal-close:hover { background: var(--cinza-100); color: var(--roxo-1); }
.confirm-action-modal { max-width: 500px; }
.confirm-action-body { display: flex; align-items: flex-start; gap: 14px; }
.confirm-action-body > div:last-child { min-width: 0; }
.confirm-action-body p { line-height: 1.55; }
.confirm-action-hint { margin-top: 8px; color: var(--cinza-600); font-size: 12px; }
.confirm-action-icon {
  width: 40px; height: 40px; flex: 0 0 40px; border-radius: 10px;
  background: #f1e9ff; color: var(--roxo-1); display: flex; align-items: center; justify-content: center;
}
.confirm-action-icon.danger { background: #fdecec; color: var(--vermelho); }
.confirm-action-icon svg { width: 20px; height: 20px; }
.modal-iframe-shell { height: auto; min-height: 0; flex: 1 1 auto; padding: 0; overflow: hidden; background: var(--cinza-50); }
.modal-iframe-shell iframe { width: 100%; height: 100%; border: 0; display: block; background: #fff; }
.modal.candidate-panel-modal { max-width: min(1640px, calc(100vw - 40px)); height: min(90vh, 860px); }
.candidate-panel-modal .modal-iframe-shell { min-height: 0; }
.candidate-document-fallback {
  width: 100%; height: 100%; padding: 38px; display: flex; flex-direction: column;
  align-items: center; justify-content: center; text-align: center; background: #fff;
}
.candidate-document-fallback h3 { margin-top: 14px; font-size: 18px; }
.candidate-document-fallback p { max-width: 460px; margin: 7px 0 20px; color: var(--cinza-600); font-size: 13px; }
.candidate-document-icon {
  width: 58px; height: 58px; border-radius: 15px; background: #f1e9ff; color: var(--roxo-1);
  display: flex; align-items: center; justify-content: center;
}
.candidate-document-icon svg { width: 27px; height: 27px; }
.candidate-view-summary { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.candidate-view-summary h1 { font-size: 19px; }
.candidate-view-summary .badge { margin-top: 5px; }
.candidate-view-avatar { width: 54px; height: 54px; flex-basis: 54px; font-size: 14px; }
.candidate-view-tabs { margin-bottom: 0; }
.candidate-view-pane {
  border: 1px solid var(--borda); border-top: 0; border-radius: 0 0 12px 12px;
  padding: 18px; background: #fff;
}
.candidate-view-section { margin-bottom: 20px; }
.candidate-view-section:last-child { margin-bottom: 0; }
.candidate-view-section-title { padding-bottom: 7px; margin-bottom: 10px; border-bottom: 1px solid var(--borda); color: var(--cinza-600); font-size: 12px; }
.candidate-resume { padding: 11px; border: 1px solid var(--borda); border-radius: 8px; background: var(--cinza-50); font-size: 12px; line-height: 1.45; }
.candidate-resume > div { margin-top: 8px; }
.candidate-adherence-total { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 14px; margin: 15px 0; }
.candidate-adherence-total > strong { color: var(--verde); font-size: 34px; line-height: 1; }
.candidate-adherence-total small { display: block; margin-top: 4px; color: var(--cinza-600); font-size: 10.5px; }
.candidate-adherence-track { height: 7px; border-radius: 999px; background: var(--cinza-100); overflow: hidden; }
.candidate-adherence-track span { display: block; height: 100%; border-radius: inherit; background: var(--verde); }
.candidate-alert-rows { display: flex; flex-direction: column; gap: 6px; margin-bottom: 13px; }
.candidate-alert-row { min-height: 29px; padding: 6px 9px; border-left: 3px solid var(--cinza-400); border-radius: 6px; background: var(--cinza-50); display: grid; grid-template-columns: 100px 1fr; gap: 10px; font-size: 11px; }
.candidate-alert-row.status-ok { border-left-color: var(--verde); }
.candidate-alert-row.status-alerta { border-left-color: var(--vermelho); }
.candidate-alert-row.status-atencao { border-left-color: var(--amarelo); }
.candidate-alert-row span { color: var(--cinza-600); }
.candidate-adherence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.candidate-adherence-category { min-height: 130px; padding: 11px; border-radius: 8px; background: var(--cinza-50); }
.candidate-adherence-category-head { display: flex; justify-content: space-between; gap: 8px; color: var(--cinza-600); font-size: 10.5px; }
.candidate-adherence-category-head b { color: var(--verde); font-size: 12px; }
.candidate-adherence-category .candidate-adherence-track { margin-top: 6px; }
.candidate-requirement-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; }
.candidate-requirement-chips span { padding: 3px 7px; border-radius: 999px; font-size: 10px; }
.candidate-requirement-chips .requirement-match { background: #e4f8ed; color: #157347; }
.candidate-requirement-chips .requirement-parcial { background: #fff3d6; color: #9a6700; }
.candidate-requirement-chips .requirement-falta { background: #fde8e8; color: #b42323; }
.candidate-score-summary { display: flex; align-items: center; gap: 15px; }
.candidate-score-summary > strong { min-width: 53px; font-size: 30px; }
.candidate-score-summary > div { display: flex; flex-direction: column; }
.candidate-score-summary small { color: var(--cinza-600); font-size: 10.5px; }
.candidate-score-summary.score-verde { color: var(--verde); }
.candidate-score-summary.score-amarelo { color: var(--amarelo); }
.candidate-score-summary.score-vermelho { color: var(--vermelho); }
.candidate-data-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; }
.candidate-data-grid div { display: flex; flex-direction: column; min-width: 0; }
.candidate-data-grid span { color: var(--cinza-600); font-size: 10.5px; }
.candidate-data-grid b { overflow-wrap: anywhere; font-size: 12.5px; }
.candidate-stage-select { min-width: 280px; padding: 9px 12px; border: 1px solid var(--borda); border-radius: 8px; background: #fff; }
.candidate-rating { display: flex; align-items: center; gap: 3px; }
.candidate-rating button { padding: 0; border: 0; background: transparent; color: var(--cinza-200); font-size: 25px; line-height: 1; }
.candidate-rating button.active, .candidate-rating button:hover { color: #d8a51e; }
.candidate-rating span { margin-left: 8px; color: var(--cinza-600); font-size: 11px; }
.candidate-history-list { display: flex; flex-direction: column; }
.candidate-history-list > div { padding: 6px 0; border-bottom: 1px solid var(--borda); display: flex; justify-content: space-between; align-items: center; }
.candidate-history-list time { color: var(--cinza-600); font-size: 10.5px; }
.candidate-observation-list > div { padding: 10px; margin-bottom: 7px; border-left: 3px solid var(--roxo-1); border-radius: 7px; background: var(--cinza-50); }
.candidate-observation-list small { color: var(--cinza-600); }
.candidate-observation-list p { margin-top: 4px; font-size: 12px; }
.candidate-inline-form { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-top: 9px; }
.candidate-inline-form input { padding: 9px 11px; border: 1px solid var(--borda); border-radius: 8px; }
.candidate-opinion-preview { padding: 10px; margin-bottom: 9px; border-radius: 8px; background: var(--cinza-50); }
.candidate-opinion-preview p { margin-top: 4px; color: var(--cinza-600); font-size: 11.5px; }
.candidate-opinion-form-panel { margin-top: 12px; padding: 14px; border: 1px solid var(--borda); border-radius: 10px; background: var(--cinza-50); }
.candidate-opinion-form-panel textarea { min-height: 96px; resize: vertical; }
.candidate-opinion-form-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; }
.candidate-profile-row { padding: 0 0 13px; margin-bottom: 13px; border-bottom: 1px solid var(--borda); }
.candidate-profile-row > span { display: block; margin-bottom: 8px; color: var(--cinza-600); font-size: 11px; }
.candidate-profile-row p, .candidate-profile-row em { font-size: 12.5px; line-height: 1.55; }
.candidate-dossier-area { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--borda); }
.candidate-dossier-area h3 { font-size: 13px; }
.candidate-dossier-area p { margin: 4px 0 12px; color: var(--cinza-600); font-size: 11px; }
.candidate-dossier-area .btn + .btn { margin-top: 8px; }
.candidate-dossier-area a.btn { display: flex; align-items: center; justify-content: center; text-decoration: none; }
.candidate-dossier-modal { max-height: 86vh; overflow: hidden; }
.candidate-dossier-modal .modal-body { padding-bottom: 18px; }
.candidate-dossier-help { margin-bottom: 10px; color: var(--cinza-600); font-size: 12px; }
.candidate-dossier-text {
  width: 100%; min-height: 360px; max-height: 56vh; resize: vertical; padding: 12px;
  border: 1px solid var(--borda); border-radius: 9px; background: #fff; color: var(--cinza-900);
  font: 12px/1.35 Consolas, "Courier New", monospace;
}
.candidate-edit-form { display: flex; flex-direction: column; }
.candidate-edit-tabs { margin: 0 0 -1px; position: relative; z-index: 2; }
.candidate-edit-pane { display: none; padding: 18px; border: 1px solid var(--borda); border-radius: 0 12px 12px 12px; background: #fff; }
.candidate-edit-pane.active { display: block; }
.candidate-edit-pane textarea { min-height: 72px; }
.candidate-edit-experiences { min-height: 130px !important; }
.candidate-edit-chips { min-height: 39px; align-items: center; }
.candidate-edit-footer {
  position: sticky; bottom: 0; z-index: 4; margin: auto -18px 0; padding: 14px 18px;
  border-top: 1px solid var(--borda); background: #fff; display: flex; justify-content: flex-end; gap: 8px;
}
@media (max-width: 720px) {
  .candidate-edit-footer { flex-wrap: wrap; }
  .candidate-edit-footer .btn { flex: 1; }
}

/* Dashboard de métricas */
.metrics-page-header { margin-bottom: 14px; }
.metrics-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.metrics-header-actions .btn { height: 34px; padding: 0 11px; font-size: 12px; }
.metrics-header-actions .btn svg { width: 15px; height: 15px; }
.metrics-header-actions select { height: 34px; min-width: 230px; padding: 0 34px 0 13px; border: 1px solid var(--borda); border-radius: 9px; background: #fff; }
.metrics-kpi-strip { display: grid; grid-template-columns: repeat(10, minmax(105px, 1fr)); gap: 7px; padding: 10px; border: 1px solid var(--borda); background: #fff; border-radius: 12px; overflow-x: auto; }
.metrics-kpi { min-width: 105px; height: 94px; padding: 12px 10px; border: 1px solid var(--borda); border-radius: 11px; background: #fafafd; display: flex; position: relative; overflow: hidden; }
.metrics-kpi > b,
.metrics-kpi > div > b { display: block; font-size: 24px; line-height: 1; color: #18191d; }
.metrics-kpi b.orange { color: #bd6300; }
.metrics-kpi b.green { color: #168348; }
.metrics-kpi > span,
.metrics-kpi > div > span { color: var(--texto-3); font-size: 11.5px; margin-top: 6px; display: block; }
.metrics-kpi.spark { flex-direction: column; }
.metrics-sparkline { position: absolute; left: 14px; right: 14px; bottom: 9px; width: calc(100% - 28px); height: 22px; }
.metrics-kpi.ring { align-items: center; gap: 8px; }
.metrics-kpi.ring > i { width: 31px; height: 31px; border-radius: 50%; background: conic-gradient(var(--ring) calc(var(--pct) * 1%), #edf0f5 0); position: relative; flex: none; }
.metrics-kpi.ring > i::after { content: ''; position: absolute; inset: 5px; border-radius: 50%; background: #fafafd; }
.metrics-kpi.ratio { flex-direction: column; align-items: center; text-align: center; justify-content: flex-start; padding-top: 42px; padding-bottom: 7px; }
.metrics-kpi.ratio > i { position: absolute; top: 13px; width: 58px; height: 16px; background: linear-gradient(90deg,#5447ef,#8a34ea); clip-path: polygon(0 0,100% 28%,100% 72%,0 100%); }
.metrics-kpi.ratio > b { font-size: 17px; color: #6547ee; }
@media (max-width: 1500px) {
  .metrics-kpi-strip { grid-template-columns: repeat(5, minmax(0, 1fr)); overflow-x: visible; }
  .metrics-kpi { min-width: 0; }
}
.metrics-comparison-modal,.metrics-history-modal { max-width:1200px; }
.metrics-comparison-modal .modal-body { min-height:200px; }
.metrics-comparison-filters { display:grid; grid-template-columns:minmax(280px,460px) 180px; gap:9px; margin-bottom:14px; }
.metrics-comparison-empty { min-height:115px; border:1px solid var(--borda); border-radius:10px; display:flex; align-items:center; justify-content:center; color:var(--cinza-400); }
.metrics-comparison-table-wrap { overflow:auto; max-height:70vh; }
.metrics-comparison-table { width:100%; border-collapse:collapse; font-size:12px; }
.metrics-comparison-table th { padding:10px 12px; text-align:left; background:var(--cinza-50); color:var(--cinza-600); position:sticky; top:0; z-index:1; }
.metrics-comparison-table td { padding:10px 12px; border-bottom:1px solid var(--borda); vertical-align:middle; }
.metrics-comparison-table td:first-child b,.metrics-comparison-table td:first-child small { display:block; }
.metrics-comparison-table td:first-child small { color:var(--cinza-500); }
.metrics-comparison-table td.best { background:#dcfae8; }
.metrics-comparison-table td > i { display:inline-block; width:60px; height:7px; margin-left:7px; border-radius:999px; background:#f1f2f5; overflow:hidden; }
.metrics-comparison-table td > i u { display:block; height:100%; background:#d8f9e4; }
.metrics-stars { color:#cc6800; letter-spacing:1px; white-space:nowrap; }
.metrics-history-modal .modal-body { max-height:calc(90vh - 65px); overflow-y:auto; }
.metrics-history-list { display:flex; flex-direction:column; gap:12px; }
.metrics-history-card { padding:16px; border:1px solid var(--borda); border-radius:11px; }
.metrics-history-card h4 { margin:0 0 6px; }
.metrics-history-card > p { margin:0 0 12px; color:var(--cinza-600); font-size:12px; display:flex; flex-wrap:wrap; gap:12px; }
.metrics-history-stats { display:grid; grid-template-columns:repeat(4,1fr); text-align:center; margin:8px 0 12px; }
.metrics-history-stats div { display:flex; flex-direction:column; }
.metrics-history-stats b { font-size:20px; }.metrics-history-stats b.green{color:var(--verde)}.metrics-history-stats b.red{color:var(--vermelho)}.metrics-history-stats b.orange{color:#c65d00}
.metrics-history-stats span,.metrics-history-card > small { color:var(--cinza-600); font-size:11px; }
.metrics-history-rejected { display:flex; flex-direction:column; gap:5px; margin-top:6px; }
.metrics-history-rejected div { padding:8px 10px; border-left:3px solid var(--vermelho); border-radius:6px; background:var(--cinza-50); }
.metrics-history-rejected b,.metrics-history-rejected span { display:block; font-size:11.5px; }
.metrics-history-rejected span { color:var(--cinza-600); }
@media(max-width:700px){.metrics-comparison-filters{grid-template-columns:1fr}.metrics-history-stats{grid-template-columns:repeat(2,1fr);gap:10px}}

/* ---------- Scorecard ---------- */
.scorecard-candidate-summary { display:flex; align-items:center; gap:12px; padding:11px; border-radius:9px; background:var(--cinza-50); }
.scorecard-candidate-summary > .badge { margin-left:auto; }
.scorecard-tabs { margin-bottom:0; }
.scorecard-tabs + .tab-pane > .card { border-top-left-radius:0; }
.scorecard-transcription { margin-top:18px; padding:16px; border:1px solid var(--borda); border-radius:11px; }
.scorecard-transcription > b { display:block; padding-bottom:9px; border-bottom:1px solid var(--borda); }
.scorecard-transcription p { margin:10px 0; font-size:12px; }
.scorecard-transcription textarea { width:100%; min-height:150px; padding:12px; border:1px solid var(--borda); border-radius:9px; resize:vertical; }
.scorecard-triage-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:12px; }
.scorecard-template-save-modal,.scorecard-template-list-modal { max-width:1200px; }
.scorecard-template-save-modal .modal-body { padding-bottom:18px; }
.scorecard-template-list-modal .modal-body { display:flex; flex-direction:column; gap:9px; max-height:70vh; overflow-y:auto; }
.scorecard-template-item { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:13px; border:1px solid var(--borda); border-radius:10px; }
.scorecard-template-item > div:first-child { display:flex; flex-direction:column; }
.scorecard-template-item > div:first-child span { color:var(--cinza-500); font-size:11px; }
.scorecard-template-item > div:last-child { display:flex; gap:7px; }
.btn-danger-soft { border-color:#ffd6d6; background:#fff0f0; color:var(--vermelho); }
.btn-danger-soft:hover { background:#ffe2e2; }

.scorecard-filter-grid{grid-template-columns:minmax(220px,1fr) minmax(150px,.7fr) minmax(280px,1.6fr)}
.talent-bank-filters{margin-bottom:18px}.talent-bank-search-row{display:flex;align-items:center;gap:0}.talent-bank-search-row>input{flex:1;max-width:520px;padding:10px 14px;border:1px solid var(--borda);border-radius:9px 0 0 9px}.talent-bank-search-row>.btn{border-radius:0 9px 9px 0;margin-left:-1px}.talent-bank-advanced{margin-top:10px;padding:16px;border:1px solid var(--borda);border-radius:12px;background:#fff}.talent-bank-advanced>p{color:var(--cinza-500);font-size:12px;margin:0 0 14px}.form-grid.three-cols{grid-template-columns:repeat(3,minmax(0,1fr))}.talent-range{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.talent-range span{color:var(--cinza-500);font-size:12px}.talent-pcd-filter{align-self:end;justify-self:start;margin:0 0 9px}.talent-bank-filter-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
.talent-bank-card-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.talent-bank-card-actions>select{width:180px;height:34px;padding:0 34px 0 14px;border:1px solid var(--borda);border-radius:8px;background:#fff;color:var(--texto);outline:none}.talent-bank-card-actions>select:focus{border-color:var(--roxo-1);box-shadow:0 0 0 3px rgba(124,58,237,.1)}
@media(max-width:900px){.scorecard-filter-grid,.form-grid.three-cols{grid-template-columns:1fr 1fr}.talent-bank-search-row{align-items:stretch}.talent-bank-search-row>input{min-width:0}}
@media(max-width:620px){.scorecard-filter-grid,.form-grid.three-cols{grid-template-columns:1fr}.talent-bank-search-row{display:grid;grid-template-columns:1fr}.talent-bank-search-row>input,.talent-bank-search-row>.btn{max-width:none;width:100%;border-radius:9px;margin:0}.talent-bank-search-row>.btn{margin-top:8px}.talent-bank-filter-actions{justify-content:stretch}.talent-bank-filter-actions>*{flex:1}}
.scorecard-competency-card { padding:14px; }
.scorecard-result-summary { position:relative; display:flex; align-items:center; gap:16px; min-height:84px; padding:15px 17px 23px; border:1px solid var(--borda); border-radius:10px; }
.scorecard-result-summary > b { font-size:34px; color:var(--vermelho); }
.scorecard-result-summary > div { display:flex; flex-direction:column; gap:4px; }
.scorecard-result-summary strong { font-size:12px; }.scorecard-result-summary strong[data-level="good"]{color:var(--verde)}.scorecard-result-summary strong[data-level="warn"]{color:#bd6300}.scorecard-result-summary strong[data-level="bad"]{color:var(--vermelho)}
.scorecard-result-summary span { color:var(--cinza-500); font-size:11px; }
.scorecard-result-summary > i { position:absolute; left:17px; right:17px; bottom:14px; height:6px; border-radius:999px; background:#f0f1f4; overflow:hidden; }
.scorecard-result-summary > i u { display:block; height:100%; background:var(--roxo-1); }
.scorecard-competency-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:12px; padding:13px 15px; border:1px solid var(--borda); border-radius:10px; }
.scorecard-competency-toolbar > div { display:flex; flex-wrap:wrap; gap:7px; }
.scorecard-competency-wrap { margin-top:12px; display:flex; flex-direction:column; gap:12px; }
.scorecard-competency-group { padding:13px; border:1px solid var(--borda); border-radius:10px; overflow:hidden; }
.scorecard-competency-group h4 { margin:0 0 10px; padding:7px 10px; border-radius:6px; background:#dcecff; color:#3564b8; font-size:12px; }
.scorecard-competency-group[data-group*="soft"] h4 { background:#ede7ff; color:#7252dd; }
.scorecard-competency-group[data-group*="fit"] h4 { background:#d9f9e5; color:#17834a; }
.scorecard-competency-head,.scorecard-competency-row { display:grid; grid-template-columns:160px minmax(260px,1.1fr) minmax(280px,1.45fr) 140px; gap:14px; }
.scorecard-competency-head { padding:8px 10px; background:var(--cinza-50); color:var(--cinza-600); font-size:10.5px; font-weight:600; }
.scorecard-competency-row { align-items:start; padding:12px 10px; border-bottom:1px solid var(--borda); }
.scorecard-competency-row:last-child { border-bottom:0; }
.scorecard-competency-row > b { font-size:12px; }
.scorecard-questions { color:var(--cinza-600); font-size:11px; line-height:1.5; }
.scorecard-competency-row textarea { min-height:82px; padding:10px; border:1px solid var(--borda); border-radius:8px; resize:vertical; }
.scorecard-score > div { display:flex; gap:6px; }
.scorecard-score button { width:31px; height:31px; border:1px solid var(--borda); border-radius:7px; background:#fff; color:var(--cinza-600); }
.scorecard-score button.active { background:var(--roxo-1); border-color:var(--roxo-1); color:#fff; }
.scorecard-score small { display:block; margin-top:5px; color:var(--cinza-500); font-size:9.5px; }
.scorecard-competency-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:12px; }
.scorecard-template-editor-modal { max-width:1200px; max-height:94vh; }
.scorecard-template-editor-modal .modal-body { max-height:calc(94vh - 132px); overflow-y:auto; }
.scorecard-template-editor-intro { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:18px 0 10px; color:var(--cinza-600); font-size:12px; }
.scorecard-template-editor-list { display:flex; flex-direction:column; gap:10px; }
.scorecard-template-editor-item { padding:12px; border:1px solid var(--borda); border-radius:9px; background:var(--cinza-50); }
.scorecard-template-editor-line { display:grid; grid-template-columns:20px minmax(250px,1fr) 150px auto; align-items:center; gap:9px; }
.scorecard-template-editor-item label { display:block; margin:9px 0 5px; color:var(--cinza-600); font-size:11px; }
.scorecard-template-editor-item textarea { width:100%; min-height:70px; padding:10px; border:1px solid var(--borda); border-radius:8px; background:#fff; resize:vertical; }
@media(max-width:700px){.scorecard-template-editor-line{grid-template-columns:20px 1fr}.scorecard-template-editor-line select,.scorecard-template-editor-line button{grid-column:2}}
@media(max-width:1050px){.scorecard-competency-head{display:none}.scorecard-competency-row{grid-template-columns:1fr}.scorecard-competency-toolbar{align-items:flex-start;flex-direction:column}}
.metrics-main-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 14px; align-items: stretch; }
.metrics-panel { border: 1px solid var(--borda); border-radius: 12px; background: #fff; padding: 15px; min-width: 0; }
.metrics-panel h3 { font-size: 13px; margin: 0 0 13px; }
.metrics-funnel-panel { min-height: 390px; }
.metrics-funnel { display: flex; flex-direction: column; align-items: center; }
.metrics-funnel > div { min-width: 145px; padding: 9px 12px; border-radius: 8px; text-align: center; color: #fff; background: var(--funnel-color); font-size: 12px; font-weight: 700; }
.metrics-funnel-rate { font-size: 11px; color: var(--texto-3); margin: 4px 0; }
.metrics-stack { display: flex; flex-direction: column; gap: 12px; }
.metrics-overview-stack > .metrics-panel { flex: 1; }
.metrics-vacancy-summary > div { display:flex; justify-content:space-around; text-align:center; }
.metrics-vacancy-summary span { display:flex; flex-direction:column; color:var(--texto-3); font-size:11px; }
.metrics-vacancy-summary b { color:var(--texto); font-size:16px; margin-top:3px; }
.metrics-donut-row { display: flex; align-items: center; gap: 14px; }
.metrics-donut { width: 78px; height: 78px; border-radius: 50%; flex: none; position: relative; }
.metrics-donut::after { content: ''; position: absolute; inset: 10px; border-radius: 50%; background: #fff; }
.metrics-legend { flex: 1; display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.metrics-legend > span { display: grid; grid-template-columns: 8px minmax(0,1fr) auto; gap: 6px; align-items: center; min-height: 21px; padding: 2px 7px; border-radius: 5px; background: #f6f6f9; font-size: 10.5px; }
.metrics-legend i { width: 7px; height: 7px; border-radius: 50%; }
.metrics-legend b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.metrics-legend em { font-style: normal; color: var(--texto-3); }
.metrics-bars { display: flex; flex-direction: column; gap: 10px; }
.metrics-bars > div > span { display: flex; justify-content: space-between; gap: 12px; font-size: 11px; margin-bottom: 5px; }
.metrics-bars span b { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.metrics-bars span em { font-style: normal; font-weight: 700; }
.metrics-bars > div > i { display: block; height: 6px; background: #f1f1f4; border-radius: 999px; overflow: hidden; }
.metrics-bars > div > i > u { display: block; height: 100%; border-radius: inherit; text-decoration: none; background: #e23636; }
.metrics-bars.red span em { color: #d82d2d; }
.metrics-bars.stage > div > i > u { background: #5748ec; }
.metrics-bars.stage span em { color: #5748ec; }
.metrics-acquisition-grid,.metrics-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 14px; align-items: stretch; }
.metrics-acquisition-grid .metrics-panel { min-height: 148px; }
.metrics-bars.quality > div > i > u { background: #c56000; }
.metrics-bars.quality span em { color: #bd6300; }
.metrics-bars.companies > div > i > u { background:rgba(30,41,59,.78); }
.metrics-bars.companies span em { color:var(--texto); }
.metrics-bars.acquisition > div > i > u { background: linear-gradient(90deg, #8578fb, #584bea); }
.metrics-bars.acquisition span em { color: #584bea; }
.metrics-bars span em small { color: var(--texto-3); font-weight: 500; }
.metrics-match { min-height: 96px; display:grid; grid-template-columns:auto 1fr; gap:6px 10px; align-items:center; }
.metrics-match > b { color:#5548e8; font-size:26px; line-height:1; }
.metrics-match > span { font-size:11px; color:var(--texto-3); }
.metrics-match > i { grid-column:1 / -1; height:7px; overflow:hidden; border-radius:999px; background:#f0eff7; }
.metrics-match > i > u { display:block; height:100%; background:#5548e8; border-radius:inherit; }
.metrics-match > small { grid-column:1 / -1; display:flex; justify-content:space-between; color:var(--texto-3); font-size:10px; }
.metrics-match > small em { font-style:normal; }
.metrics-recruiters { display: flex; flex-direction: column; gap: 8px; }
.metrics-recruiters > div { display: flex; align-items: center; gap: 10px; padding: 11px 12px; border: 1px solid var(--borda); border-radius: 9px; background: #fafafd; }
.metrics-recruiters > div > i { width: 28px; height: 28px; border-radius: 50%; background: #e8eaff; color: #5b55df; display: inline-flex; align-items: center; justify-content: center; font-style: normal; font-weight: 700; }
.metrics-recruiters span { display: flex; flex-direction: column; }
.metrics-recruiters small { color: var(--texto-3); margin-top: 3px; }
.metrics-sla { display: flex; align-items: center; justify-content: center; min-height: 100px; gap: 15px; }
.metrics-sla b { display: block; color: #168348; }
.metrics-sla span { display: block; color: #d85c5c; margin-top: 4px; font-size: 12px; }
.metrics-turnover b { color:#c97800; }
.metrics-turnover span { color:var(--texto-3); }
.metrics-turnover small { display:block; margin-top:6px; color:var(--texto-3); font-size:10px; }
.metrics-turnover > div:last-child { flex:1; }
.metrics-turnover span { display:flex; justify-content:space-between; gap:12px; padding:3px 0; color:var(--texto); }
.metrics-turnover span b { color:var(--texto); }
.metrics-rejection-grid > .metrics-panel { min-height:275px; }
.metrics-monthly-section { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top: 14px; }
.metrics-monthly-section .metrics-panel { width: 100%; }
.metrics-monthly { position:relative; }
.metrics-monthly-legend { position:absolute; top:14px; right:15px; display:flex; gap:12px; font-size:10px; font-weight:600; }
.metrics-monthly-legend span:first-child{color:#3b82f6}.metrics-monthly-legend span:last-child{color:#10b981}
.metrics-monthly-chart { height: 115px; display: flex; align-items: flex-end; justify-content: space-around; gap: 18px; border-bottom: 1px solid var(--borda); padding: 0 18px; }
.metrics-monthly-chart > div { height: 100%; min-width: 45px; display: grid; grid-template-rows: 18px 1fr 18px; justify-items: center; align-items: end; }
.metrics-monthly-chart b { color: #584cea; font-size: 11px; }
.metrics-monthly-chart i { width: 28px; min-height: 4px; border-radius: 7px 7px 0 0; background: linear-gradient(#6b5ef3,#4d42df); }
.metrics-monthly-chart span { color: var(--texto-3); font-size: 10px; margin-top: 5px; }
.metrics-monthly-double > div { grid-template-rows:18px 1fr 18px; }
.metrics-monthly-double > div > small { color:var(--texto-3); font-size:10px; margin-top:5px; }
.metrics-double-bars { width:44px; height:100%; display:flex; justify-content:center; align-items:flex-end; gap:4px; }
.metrics-monthly-chart .metrics-double-bars i { width:13px; margin:0; }
.metrics-monthly-chart .metrics-double-bars i:last-child { background:linear-gradient(#25c994,#10966f); }
@media (max-width: 1250px) {
  .metrics-main-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 850px) {
  .metrics-page-header { align-items: flex-start; }
  .metrics-header-actions { width: 100%; justify-content: flex-start; }
  .metrics-header-actions select { flex: 1; }
  .metrics-main-grid,
  .metrics-acquisition-grid,
  .metrics-detail-grid,
  .metrics-monthly-section { grid-template-columns: 1fr; }
  .metrics-main-grid > :last-child { grid-column: auto; }
  .metrics-monthly-chart { gap: 6px; padding: 0 4px; }
  .metrics-monthly-chart > div { min-width: 22px; }
}
.candidate-create-modal { overflow: hidden; }
.candidate-create-modal form { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; max-height: none; }
.candidate-create-modal .modal-body { overflow-y: auto; }
.candidate-create-tabs { margin-bottom: -1px !important; position: relative; z-index: 2; }
.candidate-create-pane { display: none; padding: 18px; border: 1px solid var(--borda); border-radius: 0 12px 12px 12px; background: #fff; }
.candidate-create-pane.active { display: block; }
.candidate-create-pane textarea { min-height: 80px; }
.candidate-create-experiences { min-height: 115px !important; }
.candidate-create-chips { min-height: 39px; align-items: center; }

.talent-selection-modal { overflow: hidden; }
.talent-selection-modal .modal-body { display: flex; flex-direction: column; gap: 12px; overflow: hidden; }
.talent-selection-search { display: flex; align-items: center; gap: 10px; border: 1px solid var(--borda); border-radius: 9px; padding: 0 12px; background: #fff; flex: none; }
.talent-selection-search svg { width: 17px; height: 17px; color: var(--texto-3); flex: none; }
.talent-selection-search input { border: 0; padding: 11px 0; width: 100%; outline: 0; background: transparent; }
.talent-selection-list { display: flex; flex-direction: column; gap: 8px; max-height: 470px; overflow-y: auto; padding: 1px 5px 1px 1px; }
.talent-selection-card { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--borda); border-radius: 10px; cursor: pointer; transition: border-color .16s, background .16s, box-shadow .16s; }
.talent-selection-card:hover { border-color: #b9b2f5; background: #fbfaff; }
.talent-selection-card.selected { border-color: var(--roxo-1); background: #f7f5ff; box-shadow: 0 0 0 1px var(--roxo-1); }
.talent-selection-card > input { position: absolute; opacity: 0; pointer-events: none; }
.talent-selection-card .candidate-list-avatar { width: 42px; height: 42px; }
.talent-selection-info { display: flex; flex-direction: column; min-width: 0; gap: 3px; }
.talent-selection-info strong { color: var(--texto-1); font-size: 14px; }
.talent-selection-contact,
.talent-selection-origin { color: var(--texto-3); font-size: 12px; line-height: 1.35; }
.talent-selection-origin i { display: inline-block; width: 1px; height: 12px; margin: 0 8px -2px; background: var(--borda); }
.talent-selection-stars { color: #e8a317; letter-spacing: 1px; white-space: nowrap; }
.talent-selection-empty { min-height: 180px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--texto-3); gap: 8px; }
.talent-selection-empty svg { width: 30px; height: 30px; }
.talent-selection-empty p { margin: 0; }

.agenda-header-actions { display: flex; align-items: center; gap: 8px; }
.agenda-header-actions select { min-width: 146px; height: 38px; padding: 0 34px 0 13px; border: 1px solid var(--borda); border-radius: 9px; background-color: #fff; }
.agenda-header-actions .btn { height: 38px; }
.agenda-table-wrap { overflow-x: auto; }
.agenda-table { min-width: 850px; }
.agenda-table th:nth-child(1) { width: 44%; }
.agenda-table th:nth-child(2) { width: 24%; }
.agenda-table th:nth-child(3) { width: 14%; }
.agenda-table th.agenda-actions-heading { text-align: right; }
.agenda-table td { padding-top: 12px; padding-bottom: 12px; }
.agenda-candidate-cell { display: flex; align-items: center; gap: 11px; }
.agenda-candidate-avatar { width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; font-size: 12px; font-weight: 700; flex: none; }
.agenda-date-badge { display: inline-flex; align-items: center; padding: 4px 9px; border-radius: 999px; background: #dcfce7; color: #168348; font-size: 12px; font-weight: 600; white-space: nowrap; }
.agenda-date-badge.past { background: #f1f2f5; color: var(--texto-3); }
.agenda-row-actions { width: 1%; white-space: nowrap; text-align: right; }
.agenda-row-actions button,
.agenda-row-actions a { width: 29px; height: 29px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; background: transparent; border-radius: 7px; color: #737783; cursor: pointer; vertical-align: middle; }
.agenda-row-actions button:hover,
.agenda-row-actions a:hover { background: #f1efff; color: var(--roxo-1); }
.agenda-row-actions .success { color: #1b9b5d; }
.agenda-row-actions button.needs-link { color: #d68a00; }
.agenda-row-actions button:disabled { opacity: .3; cursor: not-allowed; background: transparent; color: #737783; }
.agenda-row-actions button svg,
.agenda-row-actions a svg { width: 17px; height: 17px; }
.agenda-collective-list { max-height: 230px; overflow-y: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; padding: 10px; border: 1px solid var(--borda); border-radius: 9px; }
.agenda-collective-list label { display: flex; align-items: center; gap: 8px; padding: 7px 9px; border-radius: 7px; cursor: pointer; }
.agenda-collective-list label:hover { background: var(--fundo-2); }
.agenda-collective-list input { width: 16px; height: 16px; accent-color: var(--roxo-1); }
.collective-agenda-modal { overflow: hidden; }
.collective-agenda-modal form { display: flex; flex-direction: column; max-height: calc(90vh - 59px); }
.collective-agenda-body { overflow-y: auto; }
.collective-agenda-step { display: none; }
.collective-agenda-step.active { display: block; }
.collective-agenda-summary { margin: 0 0 15px; color: var(--texto-3); font-size: 13px; }
.collective-candidate-toolbar { display: grid; grid-template-columns: minmax(240px, 1fr) 175px auto; gap: 8px; margin-top: 8px; }
.collective-candidate-toolbar .candidate-search { max-width: none; }
.collective-candidate-toolbar > select {
  width: 100%; height: 38px; padding: 0 34px 0 13px;
  border: 1px solid var(--borda); border-radius: 9px;
  background-color: #fff; color: var(--texto); outline: none;
}
.collective-candidate-toolbar > select:focus {
  border-color: var(--roxo-1); box-shadow: 0 0 0 3px rgba(124,58,237,.12);
}
.collective-candidate-list { display: flex; flex-direction: column; gap: 8px; max-height: 430px; overflow-y: auto; margin-top: 10px; padding: 1px 5px 1px 1px; }
.collective-candidate-card { display: grid; grid-template-columns: 22px 42px minmax(0, 1fr); align-items: center; gap: 12px; padding: 11px 13px; border: 1px solid var(--borda); border-radius: 10px; cursor: pointer; transition: border-color .16s, background .16s, box-shadow .16s; }
.collective-candidate-card:hover { border-color: #b9b2f5; background: #fbfaff; }
.collective-candidate-card.selected { border-color: var(--roxo-1); background: #f7f5ff; box-shadow: 0 0 0 1px var(--roxo-1); }
.collective-candidate-card > input { width: 18px; height: 18px; accent-color: var(--roxo-1); }
.collective-candidate-card .candidate-list-avatar { width: 42px; height: 42px; }
.collective-candidate-main { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.collective-candidate-head { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.collective-candidate-head strong { color: var(--texto-1); }
.collective-agenda-foot { justify-content: space-between; }
.collective-agenda-foot.final-step { justify-content: flex-end; }
.collective-agenda-foot > span { color: var(--texto-3); font-size: 13px; }
.collective-agenda-foot > div { display: flex; gap: 7px; }
@media (max-width: 720px) {
  .page-header:has(.agenda-header-actions) { gap: 8px; margin-bottom: 14px; }
  .page-header:has(.agenda-header-actions) h1 { font-size: 19px; line-height: 1.15; }
  .page-header:has(.agenda-header-actions) .sub { margin-top: 1px; }
  .agenda-header-actions { width: 100%; display: grid; grid-template-columns: 1fr; gap: 7px; }
  .agenda-header-actions select,
  .agenda-header-actions .btn { width: 100%; min-width: 0; height: 38px; }

  .agenda-table-wrap { overflow: visible; }
  .agenda-table { min-width: 0; }
  .agenda-table tbody { gap: 10px; }
  .agenda-table tbody tr {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    padding: 14px;
    border-radius: 12px;
  }
  .agenda-table tbody td,
  .agenda-table tbody td:first-child,
  .agenda-table tbody td:last-child {
    width: 100% !important;
    padding: 0;
  }
  .agenda-table tbody td:nth-child(2) { margin-top: 10px; }
  .agenda-table tbody td:nth-child(3) { margin-top: 8px; }
  .agenda-candidate-cell { gap: 10px; padding-left: 8px; }
  .agenda-candidate-cell strong { line-height: 1.3; }
  .agenda-candidate-avatar { width: 32px; height: 32px; font-size: 11px; }
  .agenda-table .cell-title { font-size: 13px; line-height: 1.3; }
  .agenda-table .cell-sub { margin-top: 1px; font-size: 12px; }
  .agenda-row-actions {
    display: flex !important;
    align-items: center;
    justify-content: space-evenly;
    gap: 4px;
    margin-top: 12px;
    padding: 14px 8px 13px !important;
    border-top: 1px solid var(--borda) !important;
    text-align: left;
    white-space: normal;
  }
  .agenda-row-actions button,
  .agenda-row-actions a { flex: 0 0 29px; }
  .agenda-collective-list { grid-template-columns: 1fr; }
  .collective-candidate-toolbar { grid-template-columns: 1fr; }
  .collective-agenda-foot { align-items: flex-end; gap: 10px; }
  .collective-agenda-foot > div { flex-wrap: wrap; justify-content: flex-end; }
}
.candidate-view-footer { position: sticky; bottom: 0; z-index: 3; margin: 18px -18px 0; padding: 13px 18px; border-top: 1px solid var(--borda); background: #fff; display: flex; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
@media (max-width: 720px) {
  .candidate-adherence-grid, .candidate-data-grid { grid-template-columns: 1fr; }
  .candidate-alert-row { grid-template-columns: 1fr; gap: 2px; }
  .candidate-view-footer { justify-content: stretch; }
  .candidate-view-footer .btn { flex: 1; }
}
.embedded-modal-page { background: var(--cinza-50); }
.embedded-modal-page .sidebar, .embedded-modal-page .topbar { display: none; }
.embedded-modal-page .main { margin-left: 0; min-height: 100vh; }
.embedded-modal-page .content { width: 100%; padding: 18px; max-width: none; margin: 0 auto; }
.embedded-modal-page .candidate-back { display: none; }
.embedded-modal-page .modal-page-hide { display: none !important; }
.embedded-modal-page .content { padding-bottom: 86px; }
.embedded-modal-page .candidate-edit-footer,
.embedded-modal-page .candidate-view-footer {
  position: fixed; right: 0; bottom: 0; left: 0; z-index: 20; box-sizing: border-box;
  margin: 0; padding: 13px 18px; border-top: 1px solid var(--borda); background: #fff; box-shadow: none;
}

.vaga-view-tabs { margin-bottom: 0 !important; }
.vaga-view-pane { border: 1px solid var(--borda); border-top: 0; border-radius: 0 0 11px 11px; padding: 18px; }
.vaga-view-badges { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.vaga-view-badges .badge-confidencial svg { width: 13px; height: 13px; }
.vaga-view-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.vaga-view-field { min-height: 49px; padding: 9px 11px; border-radius: 9px; background: var(--cinza-50); display: flex; flex-direction: column; justify-content: center; }
.vaga-view-field span { color: var(--cinza-400); font-size: 11px; }
.vaga-view-field b { color: var(--texto); font-size: 12.5px; font-weight: 600; overflow-wrap: anywhere; }
.vaga-view-progress-label { display: flex; justify-content: space-between; color: var(--cinza-600); font-size: 11.5px; margin-top: 15px; }
.vaga-view-progress { height: 7px; margin-top: 4px; border-radius: 999px; background: var(--cinza-100); overflow: hidden; }
.public-form-editor-modal { max-width: 820px; }
.modal.modal-lg, .modal.modal-vaga-view { max-width: min(1480px, calc(100vw - 48px)); }
.modal.candidate-panel-modal { max-width: min(1640px, calc(100vw - 40px)); }
.modal.vacancy-editor-modal,
.modal.modal-vaga-view,
.modal.candidate-create-modal,
.modal.candidate-panel-modal {
  width: min(1720px, calc(100vw - 32px));
  max-width: min(1720px, calc(100vw - 32px));
  height: calc(100dvh - 24px);
  max-height: calc(100dvh - 24px);
}
@media (min-width: 881px) {
  .modal.vacancy-editor-modal .modal-head h3,
  .modal.modal-vaga-view .modal-head h3,
  .modal.candidate-create-modal .modal-head h3,
  .modal.candidate-panel-modal .modal-head h3 { font-size: 19px; }

  .modal.vacancy-editor-modal .field label,
  .modal.candidate-create-modal .field label { font-size: 14px; }
  .modal.vacancy-editor-modal .field input,
  .modal.vacancy-editor-modal .field select,
  .modal.vacancy-editor-modal .field textarea,
  .modal.candidate-create-modal .field input,
  .modal.candidate-create-modal .field select,
  .modal.candidate-create-modal .field textarea { font-size: 15px; }
  .modal.vacancy-editor-modal .tabs.tabs-form .tab-btn,
  .modal.candidate-create-modal .tabs.tabs-form .tab-btn { font-size: 14px; }
  .modal.vacancy-editor-modal .field .hint,
  .modal.candidate-create-modal .field .hint { font-size: 12px; }
  .modal.vacancy-editor-modal .btn,
  .modal.modal-vaga-view .btn,
  .modal.candidate-create-modal .btn,
  .modal.candidate-panel-modal .btn { font-size: 14.5px; }

  .modal.modal-vaga-view .vaga-view-field span { font-size: 12.5px; }
  .modal.modal-vaga-view .vaga-view-field b { font-size: 14.5px; }
  .modal.modal-vaga-view .vaga-view-section-title { font-size: 13.5px; }
  .modal.modal-vaga-view .vaga-view-text { font-size: 15px; }

  .embedded-modal-page .candidate-view-summary h1 { font-size: 22px; }
  .embedded-modal-page .candidate-view-section-title { font-size: 14px; }
  .embedded-modal-page .candidate-data-grid span { font-size: 12.5px; }
  .embedded-modal-page .candidate-data-grid b { font-size: 14.5px; }
  .embedded-modal-page .candidate-resume,
  .embedded-modal-page .candidate-profile-row p,
  .embedded-modal-page .candidate-profile-row em { font-size: 14px; }
  .embedded-modal-page .candidate-alert-row { font-size: 13px; }
  .embedded-modal-page .candidate-adherence-total small { font-size: 12px; }
  .embedded-modal-page .candidate-adherence-category-head { font-size: 12px; }
  .embedded-modal-page .candidate-adherence-category-head b { font-size: 13.5px; }
  .embedded-modal-page .candidate-requirement-chips span { font-size: 11.5px; }
  .embedded-modal-page .candidate-history-list time { font-size: 12px; }
  .embedded-modal-page .candidate-observation-list p { font-size: 13px; }
  .embedded-modal-page .candidate-edit-form .field label { font-size: 14px; }
  .embedded-modal-page .candidate-edit-form .field input,
  .embedded-modal-page .candidate-edit-form .field select,
  .embedded-modal-page .candidate-edit-form .field textarea { font-size: 15px; }
  .embedded-modal-page .candidate-edit-tabs .tab-btn { font-size: 14px; }
  .embedded-modal-page .candidate-edit-footer .btn,
  .embedded-modal-page .candidate-view-footer .btn { font-size: 14.5px; }
}
.public-form-slug-field { display:flex; align-items:center; border:1px solid var(--borda); border-radius:9px; overflow:hidden; background:var(--cinza-50); }
.public-form-slug-field span { padding:10px 0 10px 12px; color:var(--cinza-500); font-size:12px; white-space:nowrap; }
.public-form-slug-field input { flex:1; min-width:0; border:0; background:transparent; padding-left:3px; box-shadow:none!important; }
.check-row { display:flex; align-items:center; gap:9px; min-height:40px; padding:9px 11px; border:1px solid var(--borda); border-radius:9px; background:var(--cinza-50); color:var(--cinza-800); font-size:12px; cursor:pointer; }
.check-row input { width:16px; height:16px; flex:none; }
.public-form-pcd-settings { margin:0; padding:13px; border:1px solid #cfc8fb; border-radius:10px; background:#f8f7ff; }
.public-form-pcd-settings legend { padding:0 6px; color:#4f3bc1; font-size:12px; font-weight:700; }
.public-form-pcd-settings > p { margin:0 0 10px; color:var(--cinza-600); font-size:11.5px; }
.public-form-pcd-settings > div { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.public-form-adherence-hint { margin-top:15px; padding:11px 12px; border-radius:8px; background:#f3f0ff; color:#5b43b6; }
.vaga-view-progress span { display: block; height: 100%; border-radius: inherit; }
.vaga-view-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin-top: 16px; }
.vaga-view-stat { min-height: 68px; border: 1px solid var(--borda); border-radius: 9px; background: var(--cinza-50); display: flex; flex-direction: column; align-items: center; justify-content: center; }
.vaga-view-stat b { font-size: 20px; color: var(--texto); }
.vaga-view-stat b.vaga-view-stat-1 { color: var(--verde); }
.vaga-view-stat b.vaga-view-stat-2 { color: var(--amarelo); }
.vaga-view-stat b.vaga-view-stat-3 { color: var(--verde); }
.vaga-view-stat span { color: var(--cinza-600); font-size: 11.5px; }
.vaga-view-section { margin-bottom: 18px; }
.vaga-view-section:last-child { margin-bottom: 0; }
.vaga-view-section-title { color: var(--cinza-600); font-size: 12px; padding-bottom: 6px; border-bottom: 1px solid var(--borda); margin-bottom: 8px; }
.vaga-view-text { color: var(--texto); font-size: 13.5px; line-height: 1.55; white-space: pre-line; }
.vaga-view-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.vaga-view-chips span { padding: 3px 9px; border-radius: 999px; background: #f1f3ff; color: #4c45aa; font-size: 12px; }

/* ---------- Candidatos de uma vaga ---------- */
.candidate-page { width: 100%; max-width: none; margin: 0; }
.candidate-page-header { align-items: flex-end; }
.candidate-back { display: inline-block; margin-bottom: 8px; color: var(--cinza-600); font-size: 12.5px; }
.candidate-back:hover { color: var(--roxo-1); }
.candidate-page-buttons { display: flex; gap: 8px; }
.candidate-list-toolbar {
  display: grid; grid-template-columns: minmax(220px, 1fr) minmax(180px, 220px) auto;
  gap: 10px; margin-bottom: 14px;
}
.candidate-list-toolbar > select, .candidate-search {
  min-height: 40px; border: 1px solid var(--borda); border-radius: 9px; background: var(--branco);
}
.candidate-order-button { min-height: 40px; white-space: nowrap; }
.candidate-list-toolbar > select { padding: 0 12px; color: var(--texto); outline: none; }
.candidate-list-toolbar > select:focus, .candidate-search:focus-within { border-color: var(--roxo-1); box-shadow: 0 0 0 3px rgba(124,58,237,.10); }
.candidate-search { display: flex; align-items: center; gap: 8px; padding: 0 11px; }
.candidate-search svg { width: 16px; height: 16px; color: var(--cinza-400); flex: none; }
.candidate-search input { width: 100%; border: none; outline: none; background: transparent; }
.candidate-search-submit { min-height: 40px; }
.candidate-stage-filters { display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap; gap: 8px; margin: -2px 0 14px; }
.candidate-stage-filter {
  --stage-bg: #fff; --stage-border: var(--borda); --stage-text: var(--texto); --stage-strong: rgba(0,0,0,.06);
  border: 1px solid var(--cinza-200); background: #fff; color: var(--cinza-700);
}
.candidate-stage-filter { display: inline-flex; align-items: center; gap: 8px; min-height: 30px; padding: 4px 11px; border-radius: 999px; font-size: 12px; font-weight: 700; transition: transform .15s, box-shadow .15s; }
.candidate-stage-filter:hover { transform: translateY(-1px); box-shadow: 0 3px 9px rgba(31,41,55,.09); }
.candidate-stage-filter.active { border-color: var(--stage-border); background: var(--stage-bg); color: var(--stage-text); box-shadow: 0 0 0 2px color-mix(in srgb, var(--stage-border) 38%, transparent); }
.candidate-stage-filter strong { min-width: 20px; padding: 1px 6px; border-radius: 999px; background: var(--cinza-100); color: inherit; font-size: 10.5px; text-align: center; }
.candidate-stage-filter.active strong { background: var(--stage-strong); }
.stage-color-todos { --stage-bg:#f8f8ff; --stage-border:#635bff; --stage-text:#4438d4; --stage-strong:#ecebff; }
.stage-color-triagem { --stage-bg:#e1efff; --stage-border:#86bfff; --stage-text:#1559d6; --stage-strong:#c9e1ff; }
.stage-color-rh { --stage-bg:#f1e6ff; --stage-border:#c9a7ff; --stage-text:#7c3aed; --stage-strong:#e5d2ff; }
.stage-color-teste { --stage-bg:#fff5cf; --stage-border:#f6c945; --stage-text:#b76a00; --stage-strong:#ffebad; }
.stage-color-gestor { --stage-bg:#fff0df; --stage-border:#ffc994; --stage-text:#d65b0a; --stage-strong:#ffe1c2; }
.stage-color-proposta { --stage-bg:#dff8f3; --stage-border:#8ce6d7; --stage-text:#007d72; --stage-strong:#c6efe8; }
.stage-color-aprovado { --stage-bg:#e3f8ea; --stage-border:#8de2ac; --stage-text:#0a8a48; --stage-strong:#ccefd8; }
.stage-color-reprovado { --stage-bg:#ffe8e8; --stage-border:#ff9f9f; --stage-text:#d9212e; --stage-strong:#ffd1d1; }
.badge.stage-color-triagem, .badge.stage-color-rh, .badge.stage-color-teste,
.badge.stage-color-gestor, .badge.stage-color-proposta, .badge.stage-color-aprovado,
.badge.stage-color-reprovado {
  padding: 3px 9px; border: 1px solid var(--stage-border); border-radius: 999px;
  background: var(--stage-bg); color: var(--stage-text);
}
.candidate-list { display: flex; flex-direction: column; gap: 10px; }
.candidate-list-header {
  display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 13px;
  margin-bottom: 8px; padding: 10px 16px; border: 1px solid var(--borda); border-radius: 10px;
  background: #f6f6fa; color: var(--cinza-600); box-shadow: none;
}
.candidate-list-header-main {
  min-width: 0; display: grid; align-items: center; column-gap: 18px;
  grid-template-columns: minmax(380px, 500px) minmax(80px, 1fr) minmax(160px, 180px) 80px 100px 165px minmax(380px, 460px) minmax(80px, 1fr) auto;
  grid-template-areas: "name . status adherence rating contact stage-time . actions";
}
.candidate-list-header-main > span { justify-self: start; width: 100%; font-size: 11.5px; font-weight: 700; letter-spacing: .5px; text-align: left; text-transform: uppercase; white-space: nowrap; }
.candidate-header-name { grid-area: name; }
.candidate-list-header-main > .candidate-header-name { justify-self: start; text-align: left; }
.candidate-header-status { grid-area: status; }
.candidate-header-adherence { grid-area: adherence; }
.candidate-header-rating { grid-area: rating; }
.candidate-header-contact { grid-area: contact; }
.candidate-header-time { grid-area: stage-time; }
.candidate-header-status,
.candidate-header-adherence,
.candidate-header-rating,
.candidate-header-contact,
.candidate-header-time { transform: translateX(-66px); }
@media (min-width: 2251px) {
  .candidate-header-rating,
  .candidate-header-contact,
  .candidate-header-time,
  .candidate-list-rating,
  .candidate-list-inline-contact,
  .candidate-stage-time {
    position: relative;
    left: 28px;
  }
}
.candidate-list-card {
  display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 13px; padding: 15px 16px;
  border: 1px solid var(--borda); border-radius: 12px; background: var(--branco); box-shadow: var(--sombra);
}
.candidate-stage-card { border-left: 4px solid var(--stage-border); }
.candidate-stage-card.stage-color-triagem, .candidate-stage-card.stage-color-rh,
.candidate-stage-card.stage-color-teste, .candidate-stage-card.stage-color-gestor,
.candidate-stage-card.stage-color-proposta, .candidate-stage-card.stage-color-aprovado,
.candidate-stage-card.stage-color-reprovado { --stage-border: var(--borda); }
.candidate-stage-card.stage-color-triagem { --stage-border:#86bfff; }
.candidate-stage-card.stage-color-rh { --stage-border:#c9a7ff; }
.candidate-stage-card.stage-color-teste { --stage-border:#f6c945; }
.candidate-stage-card.stage-color-gestor { --stage-border:#ffc994; }
.candidate-stage-card.stage-color-proposta { --stage-border:#8ce6d7; }
.candidate-stage-card.stage-color-aprovado { --stage-border:#8de2ac; }
.candidate-stage-card.stage-color-reprovado { --stage-border:#ff9f9f; }
.candidate-filter-all .candidate-stage-card { border-left-color: var(--cinza-200); }
.candidate-select { display: none; align-self: center; }
.candidate-list.selection-mode .candidate-select { display: block; }
.candidate-select input { width: 17px; height: 17px; accent-color: var(--roxo-1); }
.candidate-list-avatar {
  width: 42px; height: 42px; flex: 0 0 42px; border-radius: 50%; color: #fff;
  display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700;
}
.candidate-list-main {
  min-width: 0; display: grid; align-items: center; column-gap: 18px; row-gap: 5px;
  grid-template-columns: minmax(380px, 500px) minmax(80px, 1fr) minmax(160px, 180px) 80px 100px 165px minmax(380px, 460px) minmax(80px, 1fr) auto;
  grid-template-areas: "name . status adherence rating contact stage-time . actions" "meta . status adherence rating contact stage-time . actions";
}
.candidate-list-name { grid-area: name; min-width: 0; overflow: hidden; color: var(--texto); font-size: 14px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.candidate-list-name:hover { color: var(--roxo-1); }
.candidate-list-name-button { display: block; width: 100%; padding: 0; border: 0; background: transparent; text-align: left; }
.candidate-list-status { grid-area: status; width: 100%; min-width: 0; }
.candidate-list-status .badge { white-space: nowrap; }
.candidate-list-adherence { grid-area: adherence; width: 80px; min-width: 0; display: flex; align-items: center; }
.candidate-list-rating { grid-area: rating; width: 100px; min-width: 0; display: flex; align-items: center; }
.candidate-list-contact { display: flex; align-items: center; gap: 14px; margin-top: 3px; }
.candidate-list-inline-contact { grid-area: contact; width: 165px; min-width: 0; display: inline-flex; margin-top: 0; padding-left: 12px; border-left: 1px solid var(--cinza-200); }
.candidate-list-contact a,
.candidate-list-contact button { display: inline-flex; align-items: center; gap: 4px; color: var(--cinza-500); font-size: 11.5px; transition: color .15s; }
.candidate-list-contact svg { width: 13px; height: 13px; }
.candidate-list-contact button:hover, .candidate-list-contact button:focus-visible { color: var(--roxo-1); }
.candidate-list-contact .candidate-whatsapp:hover,
.candidate-list-contact .candidate-whatsapp:focus-visible,
.candidate-list-contact .candidate-whatsapp:active { color: #25d366; }
.candidate-email-action { padding: 0; border: 0; background: transparent; cursor: pointer; font: inherit; }
.candidate-email-action:hover { text-decoration: underline; }
.candidate-whatsapp-action { padding: 0; border: 0; background: transparent; cursor: pointer; }
.candidate-stage-time { grid-area: stage-time; width: 100%; min-width: 380px; overflow: hidden; }
.candidate-stage-time-total { margin-bottom: 5px; color: var(--cinza-600); font-size: 10.5px; line-height: 1; }
.candidate-stage-time-total strong { color: var(--texto); font-size: 14px; }
.candidate-stage-time-bar { display: flex; width: 100%; height: 5px; overflow: hidden; border-radius: 999px; background: var(--cinza-200); }
.candidate-stage-time-bar span { display: block; min-width: 3px; height: 100%; }
.candidate-stage-time-bar .stage-triagem { background: #4f8df7; }
.candidate-stage-time-bar .stage-rh { background: #8b5cf6; }
.candidate-stage-time-bar .stage-teste { background: #f7c948; }
.candidate-stage-time-bar .stage-gestor { background: #f59e42; }
.candidate-stage-time-bar .stage-proposta { background: #36c9b4; }
.candidate-stage-time-bar .stage-aprovado { background: #35b96f; }
.candidate-stage-time-bar .stage-reprovado { background: #f56b73; }
.candidate-stage-time-summary { margin-top: 5px; overflow: hidden; color: var(--cinza-600); font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }
.candidate-whatsapp-modal textarea { min-height: 98px; resize: vertical; }
.btn.btn-whatsapp { border-color: #25d366; background: #25d366; color: #fff; }
.btn.btn-whatsapp:hover { border-color: #1fb85a; background: #1fb85a; }
.btn.btn-whatsapp svg { width: 15px; height: 15px; }
.candidate-email-modal .modal-body { max-height: calc(92vh - 132px); overflow-y: auto; }
.candidate-email-modal textarea { min-height: 180px; resize: vertical; }
.candidate-email-recipient { display: block; margin-top: 3px; color: var(--cinza-500); font-size: 11.5px; font-weight: 400; }
.candidate-list-meta { grid-area: meta; min-width: 0; display: flex; align-items: center; gap: 10px; overflow: hidden; color: var(--cinza-600); font-size: 11.5px; white-space: nowrap; }
.candidate-list-meta span { min-width: 0; }
.candidate-list-meta .candidate-meta-email, .candidate-list-meta .candidate-meta-phone { flex: 0 0 auto; }
.candidate-list-meta .candidate-meta-fixed, .candidate-list-meta .candidate-meta-location { flex: 0 0 auto; }
.candidate-list-stars { margin-top: 5px; color: #d8a51e; font-size: 15px; letter-spacing: 1px; line-height: 1; }
.candidate-list-stars-slot { display: inline-block; width: 72px; flex: 0 0 72px; margin-top: 0; overflow: hidden; white-space: nowrap; }
.candidate-list-stars-slot.is-empty { visibility: hidden; }
.candidate-list-actions { grid-area: actions; display: flex; align-items: center; gap: 6px; margin-left: auto; flex: none; position: relative; }
.candidate-list-card { overflow: visible; }
.candidate-actions-menu { z-index: 80; }
.candidate-action {
  width: 34px; height: 34px; padding: 0; border: 1px solid var(--borda); border-radius: 8px;
  background: var(--branco); color: var(--texto); display: inline-flex; align-items: center; justify-content: center;
}
.candidate-action:hover { background: var(--cinza-50); color: var(--roxo-1); border-color: var(--cinza-200); }
.candidate-action.danger { color: var(--vermelho); }
.candidate-action.danger:hover { background: #fff5f5; border-color: #f3caca; }
.candidate-action svg { width: 16px; height: 16px; }
.candidate-list-empty { padding: 50px 20px; color: var(--cinza-600); text-align: center; }
.candidate-list-empty > svg { width: 34px; height: 34px; color: var(--cinza-400); }
.candidate-list-empty h2 { margin-top: 10px; color: var(--texto); font-size: 16px; }
.candidate-list-empty p { margin-top: 4px; font-size: 13px; }

/* ---------- Detalhamento de aderência ---------- */
.aderencia-card { margin-bottom: 16px; }
.aderencia-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.aderencia-head h2, .aderencia-alert-card h2 { font-size: 16px; }
.aderencia-head p { margin-top: 3px; color: var(--cinza-600); font-size: 12px; }
.aderencia-total { width: 62px; height: 62px; flex: none; border-radius: 50%; background: var(--roxo-grad); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 800; }
.aderencia-category-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.aderencia-category { padding: 14px; border: 1px solid var(--borda); border-radius: 10px; background: var(--cinza-50); }
.aderencia-category-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 12.5px; }
.aderencia-category-head span { color: var(--roxo-1); font-weight: 800; }
.aderencia-bar { height: 6px; margin-top: 7px; border-radius: 999px; background: var(--cinza-200); overflow: hidden; }
.aderencia-bar span { display: block; height: 100%; border-radius: inherit; background: var(--roxo-grad); }
.aderencia-weight { margin-top: 5px; color: var(--cinza-400); font-size: 10.5px; }
.aderencia-items { display: flex; flex-direction: column; gap: 5px; margin-top: 10px; }
.aderencia-items > div { display: flex; align-items: center; gap: 6px; font-size: 11.5px; }
.aderencia-items .badge { min-width: 54px; justify-content: center; padding: 2px 7px; font-size: 9.5px; text-transform: capitalize; }
.aderencia-extras { margin-top: 9px; color: var(--cinza-600); font-size: 10.5px; line-height: 1.5; }
.aderencia-alert-card { margin-bottom: 16px; }
.aderencia-alerts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 13px; }
.aderencia-alert { padding: 12px; border: 1px solid var(--borda); border-radius: 9px; background: var(--cinza-50); }
.aderencia-alert > div { display: flex; align-items: center; justify-content: space-between; gap: 6px; font-size: 11.5px; }
.aderencia-alert p { margin-top: 7px; color: var(--cinza-600); font-size: 10.5px; line-height: 1.45; }

@media (min-width: 1851px) and (max-width: 2250px) {
  .candidate-list-header-main,
  .candidate-list-main {
    grid-template-columns: minmax(300px, 400px) minmax(20px, .25fr) minmax(130px, 150px) 70px 90px 150px minmax(280px, 1fr) minmax(16px, .2fr) auto;
    column-gap: 14px;
  }
  .candidate-header-status,
  .candidate-header-adherence,
  .candidate-header-rating,
  .candidate-header-contact,
  .candidate-header-time { transform: none; }
  .candidate-header-rating,
  .candidate-header-contact,
  .candidate-header-time,
  .candidate-list-rating,
  .candidate-list-inline-contact,
  .candidate-stage-time {
    position: relative;
    left: 16px;
  }
  .candidate-list-inline-contact { width: 150px; }
  .candidate-stage-time { min-width: 280px; }
}
.candidate-header-status,
.candidate-header-adherence,
.candidate-header-rating { margin-left: -12px; }
@media (max-width: 1850px) {
  .candidate-list-header { display: none; }
  .candidate-list-main {
    grid-template-columns: minmax(120px, 1fr) auto auto auto auto;
    grid-template-areas: "name status adherence rating actions" "meta contact stage-time stage-time actions";
    column-gap: 10px;
  }
  .candidate-list-status, .candidate-list-adherence, .candidate-list-rating, .candidate-list-inline-contact { width: auto; }
  .candidate-list-inline-contact { justify-self: start; }
  .candidate-stage-time { width: min(360px, 100%); min-width: 220px; }
  .candidate-list-meta .candidate-meta-email, .candidate-list-meta .candidate-meta-phone { flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis; }
}
@media (max-width: 900px) {
  .candidate-list-toolbar { grid-template-columns: 1fr 1fr; }
  .aderencia-alerts { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .candidate-list-toolbar { grid-template-columns: 1fr; }
  .candidate-list-card {
    grid-template-columns: 42px max-content max-content max-content minmax(0, 1fr);
    grid-template-areas: "avatar name name name name" "status status adherence rating ." "meta meta meta meta meta" "stage-time stage-time stage-time stage-time stage-time" "contact contact contact . actions";
    align-items: start; row-gap: 8px; column-gap: 10px;
  }
  .candidate-list-avatar { grid-area: avatar; }
  .candidate-list-main { display: contents; }
  .candidate-list-status { width: auto; max-width: none; }
  .candidate-list-adherence, .candidate-list-rating { gap: 4px; }
  .candidate-list-adherence, .candidate-list-rating { justify-self: start; }
  .candidate-list-stars-slot { width: 62px; flex-basis: 62px; font-size: 13px; }
  .candidate-list-meta { flex-wrap: wrap; gap: 4px 10px; overflow: visible; white-space: normal; }
  .candidate-list-meta .candidate-meta-email, .candidate-list-meta .candidate-meta-phone { flex: 0 1 auto; }
  .candidate-list-inline-contact { align-self: center; padding-left: 0; border-left: 0; }
  .candidate-stage-time { width: 100%; min-width: 0; padding-right: 0; }
  .candidate-list-actions { justify-self: end; margin-left: 0; }
  .candidate-list-actions .vaga-action-icon { width: 42px; height: 42px; min-width: 42px; min-height: 42px; }
  .candidate-stage-filters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
  .candidate-stage-filter { flex: none; }
  .aderencia-category-grid { grid-template-columns: 1fr; }
}
@media (max-width: 390px) {
  .candidate-list-card {
    grid-template-columns: 36px max-content max-content max-content minmax(0, 1fr);
    grid-template-areas: "avatar name name name name" "status status adherence rating ." "meta meta meta meta meta" "stage-time stage-time stage-time stage-time stage-time" "contact contact contact contact contact" "actions actions actions actions actions";
    gap: 10px; padding-left: 12px; padding-right: 12px;
  }
  .candidate-list-avatar { width: 36px; height: 36px; flex-basis: 36px; }
  .candidate-list-actions { justify-self: start; }
}

/* ---------- Toast ---------- */
.toast-wrap { position: fixed; top: 18px; right: 18px; z-index: 200; display: flex; flex-direction: column; gap: 8px; }
.toast { background: #24242e; color: #fff; padding: 11px 16px; border-radius: 9px; font-size: 13px; box-shadow: var(--sombra-lg); }
.toast.err { background: #7a1f1f; }
.toast.ok { background: #0a5c3d; }

/* ---------- Login ---------- */
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(120deg, #1760bd 0%, #6250d4 24%, #8b52dc 62%, #c755df 100%); padding: 20px; }
.login-card { background: #fff; border-radius: 18px; width: 100%; max-width: 380px; padding: 34px 30px; box-shadow: var(--sombra-lg); text-align: center; }
.login-card .logo-mark { width: 56px; height: 56px; border-radius: 14px; background: var(--roxo-grad); color: #fff; display: flex; align-items: center; justify-content: center; margin: 0 auto 14px; font-weight: 700; font-size: 22px; }
.login-brand { width: 150px; aspect-ratio: 1; margin: 0 auto 25px; overflow: hidden; border-radius: 12px; box-shadow: 0 8px 18px rgba(83,55,205,.2); }
.login-brand img { display: block; width: 100%; height: 100%; object-fit: cover; }
.login-card h1 { font-size: 20px; letter-spacing: 3px; font-weight: 800; }
.login-card p.tag { color: var(--cinza-600); font-size: 12.5px; margin-top: 2px; margin-bottom: 24px; letter-spacing: .5px; }
.login-card .login-page-title { margin: 0 0 8px; font-size: 19px; letter-spacing: 0; }
.login-page-description { margin: 0 0 20px; color: var(--cinza-600); font-size: 12.5px; line-height: 1.5; }
.login-card .field { text-align: left; margin-bottom: 14px; }
.login-forgot-row { display: flex; justify-content: flex-end; margin: -5px 0 12px; font-size: 12px; }
.login-forgot-row a,.login-back-link { color: var(--roxo-1); font-weight: 600; }
.login-forgot-row a:hover,.login-back-link:hover { text-decoration: underline; }
.login-back-link { display: inline-block; margin-top: 18px; font-size: 12px; }
.password-input-wrap { position: relative; }
.password-input-wrap input { padding-right: 48px; }
.password-toggle {
  position: absolute; right: 7px; top: 50%; transform: translateY(-50%);
  width: 34px; height: 34px; border: 0; background: transparent; color: var(--roxo-1); padding: 7px;
  display: grid; place-items: center; cursor: pointer; border-radius: 7px;
}
.password-eye { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.password-eye-hide { display: none; }
.password-toggle.is-visible .password-eye-show { display: none; }
.password-toggle.is-visible .password-eye-hide { display: block; }
.password-toggle:hover { background: var(--cinza-100); }
.password-toggle:focus-visible { outline: 2px solid var(--roxo-1); outline-offset: 1px; }
.login-error { background: #fdecec; color: #c62727; border-radius: 9px; padding: 10px 12px; font-size: 12.5px; margin-bottom: 14px; text-align: left; }
.login-success { background: #e6f6ef; color: #0a7a52; border-radius: 9px; padding: 11px 12px; font-size: 12.5px; margin-bottom: 16px; text-align: left; line-height: 1.5; }
.login-submit { min-height: 36px; }
.login-submit-loading { display: none; align-items: center; justify-content: center; gap: 8px; }
.login-submit.is-loading { opacity: .85; }
.login-submit.is-loading .login-submit-default { display: none; }
.login-submit.is-loading .login-submit-loading { display: inline-flex; }
.login-spinner {
  width: 15px; height: 15px; border-radius: 50%;
  border: 2px solid rgba(255,255,255,.38); border-top-color: #fff;
  animation: login-spin .7s linear infinite;
}
@keyframes login-spin { to { transform: rotate(360deg); } }

/* Login ATS — painel visual alinhado ao Portal do Cliente */
.login-wrap{display:grid;grid-template-columns:minmax(360px,480px) minmax(420px,1fr);max-width:1280px;min-height:calc(100vh - 64px);margin:32px auto;padding:0;background:transparent;border-radius:24px;overflow:hidden;box-shadow:0 24px 70px rgba(5,17,76,.3)}
body:has(.login-wrap){background:linear-gradient(125deg,#082b78 0%,#174fc5 38%,#7135dc 75%,#a044dc 100%)}
.login-card{align-self:stretch;max-width:none;margin:0;padding:54px 58px;border-radius:0;display:flex;flex-direction:column;justify-content:center;text-align:left;box-shadow:none}
.login-brand{width:100%;height:118px;aspect-ratio:auto;margin:0 0 30px;border-radius:0;box-shadow:none}.login-brand img{object-fit:contain;object-position:left}
.login-card .field label{font-weight:700}.login-card .field input{min-height:48px;border-radius:10px}.login-card .btn{min-height:48px;border-radius:10px}.ats-login-message{display:flex;align-items:flex-end;padding:70px;color:#fff;background:linear-gradient(90deg,rgba(5,35,111,.3),rgba(67,35,175,.18)),url('/assets/img/home-banner-equipe.png') center/cover}.ats-login-message>div{max-width:560px;padding:28px;border:1px solid rgba(255,255,255,.24);border-radius:18px;background:rgba(18,29,111,.46);backdrop-filter:blur(10px)}.ats-login-message small{letter-spacing:3px;font-size:11px;font-weight:800}.ats-login-message h1{margin:10px 0;font-size:36px;line-height:1.12;letter-spacing:0;color:#fff}.ats-login-message p{margin:0;color:#e7eaff;font-size:16px}.login-card .login-brand+.login-error{margin-top:0}
@media(max-width:900px){.login-wrap{display:flex;min-height:calc(100vh - 36px);margin:18px;border-radius:20px}.login-card{width:100%;padding:42px 30px}.ats-login-message{display:none}.login-brand{height:102px}}

/* ---------- Public application form ---------- */
.public-body { min-height: 100vh; background: #f4f3f8; color: var(--texto); }
.public-wrap { max-width: 820px; margin: 0 auto; padding: 34px 18px 70px; }
.public-hero { position: relative; overflow: hidden; background: #fff; color: #101e5b; border-radius: 18px; padding: 0; margin-bottom: 18px; box-shadow: 0 12px 32px rgba(49,46,129,.14); border: 1px solid #e9e8f4; }
.public-hero::after { display: none; }
.public-brand {
  position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(260px, .7fr); grid-template-rows: minmax(0, 1fr);
  width: 100%; height: 150px;
  margin: 0; overflow: hidden;
  background: linear-gradient(120deg, #0758b6 0%, #5138d1 52%, #c14ee6 100%);
  border-radius: 18px 18px 0 0;
}
.public-brand-logo { display: block; width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: center; border-radius: 0; }
.public-brand-promise { min-height: 0; display: flex; align-items: center; justify-content: center; gap: 16px; padding: 20px 24px; background: linear-gradient(90deg, rgb(204,105,229) 0%, rgb(181,72,224) 100%); color: rgba(255,255,255,.82); font-size: 16px; line-height: 1.3; }
.public-brand-promise svg { width: 43px; height: 43px; flex: none; stroke-width: 1.45; }
.public-brand-promise i { width: 1px; height: 58px; flex: none; background: rgba(255,255,255,.48); }
.public-brand-promise strong { color: #fff; font-weight: 800; }
.public-hero-main { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 32px; align-items: center; padding: 30px 36px 32px; }
.public-job-intro { min-width: 0; }
.public-hero-message { min-height: 126px; padding-left: 34px; border-left: 1px solid #dedff1; display: flex; flex-direction: column; justify-content: center; color: #777aa5; font-size: 20px; line-height: 1.2; }
.public-hero-message strong { color: #5126e6; font-size: 21px; }
.public-hero-message i { display: block; width: 38px; height: 3px; margin-top: 16px; border-radius: 3px; background: #6335ec; }
.public-eyebrow, .public-section-kicker { color: #7b7fab; font-size: 10px; font-weight: 800; letter-spacing: 1.5px; }
.public-hero h1 { position: relative; z-index: 1; margin-top: 5px; color: #102168; font-size: 29px; line-height: 1.2; }
.public-company { position: relative; z-index: 1; margin-top: 5px; color: #686c99; font-size: 13px; }
.public-hero .meta { position: relative; z-index: 1; margin-top: 16px; display: flex; gap: 8px; flex-wrap: wrap; }
.public-hero .meta span { display: inline-flex; align-items: center; gap: 6px; background: #f2f1fb; color: #17246b; padding: 8px 13px; border: 1px solid #eceaf8; border-radius: 999px; font-size: 11.5px; font-weight: 600; }
.public-hero .meta span.public-pcd-badge { background:#e8f8ef; border-color:#c9eed8; color:#08783d; }
.public-hero .meta svg { width: 13px; height: 13px; }
.public-application-form { display: flex; flex-direction: column; gap: 14px; }
.public-form-card { position: relative; background: #fff; border: 1px solid var(--borda); border-radius: 14px; padding: 24px 26px; box-shadow: 0 3px 14px rgba(39,39,54,.05); }
.public-form-card + .public-form-card { margin-top: 14px; }
.public-application-form .public-form-card + .public-form-card { margin-top: 0; }
.public-section-number { position: absolute; top: 22px; left: 25px; width: 27px; height: 27px; display: flex; align-items: center; justify-content: center; border-radius: 8px; background: #f1e9ff; color: var(--roxo-1); font-size: 12px; font-weight: 800; }
.public-section-title { min-height: 28px; margin: 0 0 21px 39px; }
.public-section-title h2 { font-size: 17px; }
.public-section-title p { margin-top: 3px; color: var(--cinza-600); font-size: 12px; line-height: 1.5; }
.public-fields { gap: 17px; }
.public-fields textarea { min-height: 105px; }
.public-job-summary h2 { margin-top: 17px; font-size: 14px; }
.public-job-summary p { margin-top: 6px; color: var(--cinza-800); font-size: 13px; line-height: 1.62; }
.public-section-kicker { color: var(--roxo-1); }
.public-job-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-top: 20px; }
.public-job-facts > div { padding: 11px 12px; border-radius: 9px; background: var(--cinza-50); display: flex; flex-direction: column; }
.public-job-facts span { color: var(--cinza-600); font-size: 10.5px; }
.public-job-facts b { margin-top: 2px; font-size: 12px; }
.public-attention { margin-top: 18px; padding: 13px 14px; border-left: 3px solid #f4b400; border-radius: 8px; background: #fffaf0; }
.public-attention b { color: #785200; font-size: 11.5px; letter-spacing: .5px; }
.public-attention p { margin-top: 4px; color: #624b1a; font-size: 11.5px; line-height: 1.5; }
.public-error { display: flex; gap: 9px; align-items: flex-start; margin: 14px 0; padding: 12px 14px; border: 1px solid #f3caca; border-radius: 10px; background: #fff5f5; color: #9d2020; font-size: 12.5px; }
.public-error svg { width: 17px; height: 17px; flex: none; }
.public-tag-list { display: flex; flex-direction: column; gap: 11px; }
.public-tag-question { padding: 14px; border: 1px solid var(--borda); border-radius: 10px; }
.public-tag-question legend { padding: 0 5px; color: var(--texto); font-size: 13px; font-weight: 700; }
.public-radio-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.public-radio-options label { cursor: pointer; }
.public-radio-options input { position: absolute; opacity: 0; pointer-events: none; }
.public-radio-options span { min-height: 37px; padding: 8px 9px; border: 1px solid var(--borda); border-radius: 8px; display: flex; align-items: center; justify-content: center; color: var(--cinza-600); background: var(--cinza-50); text-align: center; font-size: 11px; transition: .12s ease; }
.public-radio-options input:checked + span { border-color: var(--roxo-1); background: #f1e9ff; color: var(--roxo-1); font-weight: 700; box-shadow: 0 0 0 2px rgba(124,58,237,.08); }
.public-radio-options input:focus-visible + span { outline: 2px solid var(--roxo-1); outline-offset: 2px; }
.public-choice-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; }
.public-choice-list label { min-width: 0; padding: 9px 11px; border: 1px solid var(--borda); border-radius: 9px; background: var(--cinza-50); display: flex; align-items: flex-start; gap: 9px; cursor: pointer; transition: .12s ease; }
.public-choice-list label:hover { border-color: #c9b8ef; background: #fbf9ff; }
.public-choice-list input { width: 17px; height: 17px; margin-top: 1px; flex: none; accent-color: var(--roxo-1); }
.public-choice-list span { color: var(--cinza-800); font-size: 12.5px; line-height: 1.4; }
.public-choice-list label:has(input:checked) { border-color: #bda5ed; background: #f5f0ff; }
.public-choice-list label:has(input:checked) span { color: var(--roxo-1); font-weight: 600; }
.public-choice-list.inline { display: flex; flex-wrap: wrap; }
.public-choice-list.inline label { min-width: 100px; }
.public-experience-field { margin-top: 19px; }
.public-summary-field { margin-top: 17px; }
.public-privacy-question { margin-top: 18px; padding: 15px; border: 1px solid var(--borda); border-radius: 10px; }
.public-privacy-question legend { max-width: calc(100% - 16px); padding: 0 5px; color: var(--texto); font-size: 12.5px; line-height: 1.5; }
.public-privacy-question .public-choice-list { margin-top: 8px; }
.public-source-question .public-choice-list { grid-template-columns: 1fr; }
.public-source-question .public-source-other { align-items: center; flex-wrap: wrap; }
.public-source-question .public-source-other input[type="text"] { flex: 1 1 220px; width: auto; height: 30px; margin: 0; padding: 4px 8px; border: 0; border-bottom: 1px solid #cfd5e1; border-radius: 0; background: transparent; accent-color: initial; }
.public-consent { display: flex; align-items: flex-start; gap: 9px; margin-top: 20px; padding: 13px; border-radius: 9px; background: var(--cinza-50); color: var(--cinza-800); font-size: 11.5px; line-height: 1.5; }
.public-consent input { width: 16px; height: 16px; flex: none; margin-top: 1px; accent-color: var(--roxo-1); }
.public-submit { min-height: 44px; margin-top: 18px; font-size: 13.5px; }
.public-success { padding: 48px 30px; }
.public-success > svg { width: 50px; height: 50px; padding: 11px; border-radius: 50%; background: #e6f6ef; color: var(--verde); }
.public-success h2 { margin-top: 13px; font-size: 20px; }
.public-success p { max-width: 540px; margin: 8px auto 0; color: var(--cinza-600); line-height: 1.6; }
.public-footer { padding: 24px 10px 0; color: var(--cinza-600); text-align: center; font-size: 10.5px; }

@media (max-width: 700px) {
  .public-wrap { padding: 18px 11px 45px; }
  .public-hero { padding: 0; border-radius: 14px; }
  .public-brand { width: 100%; height: auto; margin: 0; grid-template-columns: 1fr; grid-template-rows: auto auto; border-radius: 14px 14px 0 0; }
  .public-brand-logo { width: 100%; height: auto; aspect-ratio: 2.5 / 1; }
  .public-brand-promise { display: none; }
  .public-brand-promise svg { width: 32px; height: 32px; }
  .public-brand-promise i { height: 40px; }
  .public-hero-main { grid-template-columns: 1fr; gap: 22px; padding: 24px 20px 25px; }
  .public-hero-message { min-height: 0; padding: 18px 0 0; border-left: 0; border-top: 1px solid #dedff1; font-size: 17px; }
  .public-hero-message strong { font-size: 18px; }
  .public-hero h1 { font-size: 22px; }
  .public-form-card { padding: 21px 18px; }
  .public-section-number { left: 17px; top: 19px; }
  .public-radio-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-choice-list { grid-template-columns: 1fr; }
  .public-job-facts { grid-template-columns: 1fr; }
}

/* ---------- Misc ---------- */
.text-muted { color: var(--cinza-600); }
.text-center { text-align: center; }
.mt-0 { margin-top: 0; } .mt-8 { margin-top: 8px; } .mt-16 { margin-top: 16px; } .mt-24 { margin-top: 24px; }
.empty-state { text-align: center; padding: 60px 20px; color: var(--cinza-600); }
.empty-state svg { width: 46px; height: 46px; color: var(--cinza-200); margin-bottom: 10px; }
hr.sep { border: none; border-top: 1px solid var(--borda); margin: 18px 0; }

/* ---------- Stepper numérico ---------- */
.stepper { display: flex; align-items: center; gap: 8px; }
.stepper button {
  width: 30px; height: 30px; flex: none; border-radius: 50%;
  border: 1px solid var(--borda); background: #fff; color: var(--cinza-600);
  font-size: 16px; line-height: 1; display: flex; align-items: center; justify-content: center;
}
.stepper button:hover { background: var(--cinza-100); color: var(--texto); }
.stepper input { text-align: center; }
.scroll-x { overflow-x: auto; }

@media (max-width: 880px) {
  .public-form-pcd-settings > div { grid-template-columns:1fr; }
  .sidebar {
    display: flex;
    position: fixed;
    left: 0;
    z-index: 40;
    transform: translateX(-100%);
    box-shadow: var(--sombra-lg);
  }
  body.sidebar-mobile-open .sidebar { transform: translateX(0); }
  body.sidebar-collapsed .sidebar { width: var(--sidebar-w); flex-basis: var(--sidebar-w); }
  body.sidebar-collapsed .sidebar-brand .brand-text,
  body.sidebar-collapsed .sidebar-nav .nav-item span,
  body.sidebar-collapsed .sidebar-footer .who,
  body.sidebar-collapsed .sidebar-footer .logout-btn span,
  body.sidebar-collapsed .sidebar-settings span { display: block; }
  body.sidebar-collapsed .sidebar-nav .nav-item { justify-content: flex-start; gap: 11px; padding-left: 12px; padding-right: 12px; }
  body.sidebar-collapsed .sidebar-footer { align-items: stretch; justify-content: space-between; padding-left: 16px; padding-right: 16px; }
  body.sidebar-collapsed .sidebar-user-row { justify-content: space-between; }
  body.sidebar-collapsed .sidebar-settings { padding: 9px 10px; margin: -4px -4px 0; }
  body.sidebar-collapsed .sidebar-footer .logout-btn { padding: 6px 10px; }
  .topbar { padding-left: 18px; padding-right: 18px; }
  .topbar .search { max-width: none; }
  .vaga-view-grid { grid-template-columns: 1fr; }
  .vaga-view-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-grid, .form-grid.cols-3 { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .topbar { gap: 10px; }
  .topbar .search input { padding-right: 10px; }
  .avatar-chip { display: none; }
}

/* ---------- Responsividade geral do painel ---------- */
html, body { max-width: 100%; overflow-x: hidden; }
.app-shell, .main, .content { min-width: 0; max-width: 100%; }
.main { overflow-x: hidden; }
img, video, canvas { max-width: 100%; }
.content, .card, .modal, .modal-body, .form-grid > *, .filters > * { min-width: 0; }

@media (max-width: 1100px) {
  .settings-shell { grid-template-columns: 1fr; }
  .settings-test-card, .settings-test-action { align-items: stretch; flex-direction: column; }
  .settings-test-action { width: 100%; min-width: 0; }
  .settings-test-action input { width: 100%; min-width: 0; }
  .metrics-kpi-strip {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    overflow-x: visible;
  }
  .stat-grid.dash-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .stat-grid.dash-stats .stat-card { min-width: 0; }
  .kanban {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow-x: visible;
  }
  .kanban-col { width: 100%; min-width: 0; flex-basis: auto; }
}

@media (max-width: 880px) {
  .content { padding: 18px 16px 44px; }
  .page-head, .card-head, .modal-foot, .filters { flex-wrap: wrap; }
  .page-head > *, .card-head > * { min-width: 0; }
  .filters input, .filters select { max-width: 100%; }

  .modal-overlay { padding: 10px; }
  .modal { width: 100%; max-width: calc(100vw - 20px); max-height: calc(100dvh - 20px); }
  .modal.vacancy-editor-modal,
  .modal.modal-vaga-view,
  .modal.candidate-create-modal,
  .modal.candidate-panel-modal {
    width: 100%; max-width: calc(100vw - 20px); height: calc(100dvh - 20px); max-height: calc(100dvh - 20px);
  }
  .modal-head, .modal-body, .modal-foot { padding-left: 16px; padding-right: 16px; }
  .modal-foot { gap: 8px; }
  .modal-head .modal-close {
    width: 42px; height: 42px; flex: 0 0 42px; padding: 0; border-radius: 9px;
    display: inline-flex; align-items: center; justify-content: center; font-size: 24px;
  }
  .modal-head .modal-close svg { width: 20px; height: 20px; }
  .modal-head .modal-close:active { background: var(--cinza-100); color: var(--roxo-1); }

  .table-wrap, .vagas-table-wrap, .agenda-table-wrap,
  .notification-table, .scroll-x {
    width: 100%; max-width: 100%; overflow: visible;
    border: 0; background: transparent; box-shadow: none;
  }
  table.data-table, table.data-table tbody { display: block; width: 100%; min-width: 0; }
  table.data-table thead { display: none; }
  table.data-table tbody { display: grid; gap: 10px; }
  table.data-table tbody tr {
    position: relative; display: flex; flex-wrap: wrap; align-items: center;
    width: 100%; min-width: 0; padding: 5px 0;
    border: 1px solid var(--borda); border-radius: 11px; background: #fff;
    box-shadow: 0 2px 8px rgba(39,39,54,.04);
  }
  table.data-table tbody td {
    display: block; flex: 1 1 145px; width: auto !important; min-width: 0;
    padding: 8px 12px; border: 0; white-space: normal;
    overflow-wrap: anywhere; word-break: normal;
  }
  table.data-table tbody td:first-child { flex-basis: 100%; padding-top: 11px; }
  table.data-table tbody td.row-actions,
  table.data-table tbody td:last-child { flex-basis: 100%; padding-top: 5px; padding-bottom: 11px; }
  table.data-table tbody td.row-actions { display: flex; flex-wrap: wrap; gap: 6px; }
  .vagas-table-wrap table.data-table tbody td.row-actions { width: 100% !important; }
  .vagas-table-wrap .vaga-actions-inline { width: 100%; flex: 1 1 100%; }
  .vagas-table-wrap .vaga-actions-menu { max-width: calc(100vw - 32px); }

  .notification-table tbody tr { padding-left: 0; }
  .notification-table tbody td:first-child {
    position: absolute; top: 16px; left: 16px; width: 18px !important; height: 18px;
    padding: 0; line-height: 1; z-index: 1;
  }
  .notification-table tbody td:first-child input { display: block; margin: 0; }
  .notification-table tbody td:nth-child(2) { flex-basis: 100%; padding-left: 42px; }

  .metrics-kpi-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  .stat-grid.dash-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat-card.mini { padding: 12px; gap: 9px; }
  .stat-card.mini .icon-badge { width: 34px; height: 34px; }
  .dash-grid { grid-template-columns: minmax(0, 1fr); }
  .dash-col { min-width: 0; }
  .kanban { grid-template-columns: minmax(0, 1fr); }
  .kanban-col { max-height: none; }
  .metrics-kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vaga-view-stats { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .content { padding: 14px 11px 34px; }
  .topbar { padding-left: 12px; padding-right: 12px; }
  .page-head { align-items: stretch; gap: 10px; }
  .page-head .btn, .page-head-actions, .page-head-actions .btn { max-width: 100%; }
  .filters { align-items: stretch; }
  .filters > *, .filters input, .filters select, .filters .btn { width: 100% !important; }
  .modal-overlay { padding: 6px; }
  .modal { max-width: calc(100vw - 12px); max-height: calc(100dvh - 12px); border-radius: 12px; }
  .modal.vacancy-editor-modal,
  .modal.modal-vaga-view,
  .modal.candidate-create-modal,
  .modal.candidate-panel-modal {
    max-width: calc(100vw - 12px); height: calc(100dvh - 12px); max-height: calc(100dvh - 12px);
  }
  .modal-head, .modal-body, .modal-foot { padding-left: 12px; padding-right: 12px; }
  .modal-foot .btn { flex: 1 1 auto; }
  table.data-table tbody td { flex-basis: 100%; }
  .toast-wrap { left: 10px; right: 10px; }
}

/* ---------- Vagas em formato de cards no mobile ---------- */
@media (max-width: 700px) {
  .vagas-page-header { align-items: stretch; }
  .vagas-page-header > div:first-child { width: 100%; }
  .vagas-page-actions { width: 100%; }
  .vagas-page-actions .btn { flex: 1; min-height: 42px; }
  .vagas-page-actions .btn-primary { display: none; }

  form.filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  form.filters > *, form.filters input, form.filters select, form.filters .btn {
    width: 100% !important; min-width: 0; margin: 0;
  }

  .vagas-table-wrap table.data-table tbody { gap: 12px; }
  .vagas-table-wrap table.data-table tbody tr {
    display: grid; grid-template-columns: minmax(0, 1fr) auto;
    align-items: center; gap: 0 10px; padding: 18px 16px 17px;
    border-radius: 14px;
  }
  .vagas-table-wrap table.data-table tbody td { padding: 0; min-width: 0; }
  .vagas-table-wrap table.data-table tbody td:nth-child(1) { grid-column: 1 / -1; grid-row: 1; }
  .vagas-table-wrap table.data-table tbody td:nth-child(2) {
    grid-column: 1 / -1; grid-row: 2; display: flex; align-items: center;
    gap: 10px; margin-top: 11px;
  }
  .vagas-table-wrap table.data-table tbody td:nth-child(3) {
    grid-column: 1 / -1; grid-row: 3; display: block; margin-top: 17px;
  }
  .vagas-table-wrap table.data-table tbody td:nth-child(4) {
    grid-column: 1 / -1; grid-row: 4; margin-top: 14px;
  }
  .vagas-table-wrap table.data-table tbody td:nth-child(5) {
    grid-column: 1 / -1; grid-row: 5; width: auto !important;
    margin-top: 14px; padding: 12px 0 0; border-top: 1px solid var(--cinza-200);
  }
  .vagas-table-wrap .cell-title-button {
    display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap; font-size: 16px; font-weight: 700;
  }
  .vagas-table-wrap td:nth-child(1) .cell-sub {
    max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    margin-top: 4px; font-size: 12.5px;
  }
  .vagas-table-wrap td:nth-child(2) .cell-sub,
  .vagas-table-wrap td:nth-child(3) .cell-sub { margin-top: 0; }
  .vagas-table-wrap .vacancy-stage-bar { width: 100%; }
  .vagas-table-wrap .vacancy-stage-summary { margin-top: 5px; }
  .vagas-table-wrap .vaga-actions-inline { width: auto; flex: none; justify-content: flex-end; gap: 6px; }
  .vagas-table-wrap .vaga-action-icon {
    width: 42px; height: 42px; min-width: 42px; min-height: 42px; border-color: var(--cinza-200); border-radius: 9px;
    background: var(--branco); box-shadow: 0 2px 6px rgba(31, 41, 55, .07);
  }
  .vagas-table-wrap .vaga-action-icon svg { width: 18px; height: 18px; }
  .vagas-table-wrap .vaga-actions-menu { right: 0; }
}

@media (max-width: 390px) {
  .vagas-table-wrap table.data-table tbody tr { padding-left: 13px; padding-right: 13px; gap: 0 6px; }
  .vagas-table-wrap .vaga-actions-inline { gap: 4px; }
  .vagas-table-wrap .vaga-action-icon { width: 42px; height: 42px; }
}
.login-wrap{width:calc(100% - 40px);max-width:none;min-height:calc(100vh - 40px);margin:20px auto;grid-template-columns:minmax(360px,20%) 1fr}.login-card{padding:54px 46px}.ats-login-message{min-height:0;background-position:center;background-size:cover}
.login-card .login-brand{width:230px;height:230px;align-self:center;margin:0 auto 34px;border-radius:20px;overflow:hidden}.login-card .login-brand img{width:100%;height:100%;object-fit:cover;object-position:center}@media(max-width:900px){.login-card .login-brand{width:190px;height:190px}}
.login-wrap{align-items:stretch}.ats-login-message{align-self:stretch;height:100%;min-height:calc(100vh - 40px);background-image:linear-gradient(90deg,rgba(5,35,111,.3),rgba(67,35,175,.18)),url('/assets/img/home-banner-equipe.png')!important;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}

/* ============================================================
   Métricas — cabeçalho repaginado e barra de filtros (26/10)
   ============================================================ */
.metrics-page-header { margin-bottom: 12px; }
.metrics-page-header h1 { margin: 0; }
.metrics-page-header .sub { color: var(--cinza-600); font-size: 13.5px; margin-top: 3px; }
.metrics-header-actions { gap: 8px; }
.metrics-header-actions .btn { height: 38px; padding: 0 13px; font-size: 13px; }
.metrics-header-actions .btn-primary { padding: 0 20px; font-weight: 700; }

/* seletor de período */
.metrics-daterange { position: relative; }
.metrics-daterange-btn {
  display: flex; align-items: center; gap: 9px; height: 38px; padding: 0 13px;
  background: #fff; border: 1px solid var(--borda); border-radius: 10px;
  font-size: 13px; font-weight: 600; color: var(--texto); cursor: pointer; white-space: nowrap;
}
.metrics-daterange-btn:hover { background: var(--cinza-50); }
.metrics-daterange-btn svg { width: 16px; height: 16px; color: var(--cinza-600); }
.metrics-caret {
  width: 0; height: 0; margin-left: 2px;
  border-left: 4.5px solid transparent; border-right: 4.5px solid transparent;
  border-top: 5px solid var(--cinza-400);
}
.metrics-daterange-pop {
  display: none; position: absolute; top: calc(100% + 6px); right: 0; z-index: 30;
  background: #fff; border: 1px solid var(--borda); border-radius: 12px;
  box-shadow: var(--sombra-lg); padding: 14px; min-width: 250px;
}
.metrics-daterange.aberto .metrics-daterange-pop { display: block; }
.metrics-daterange-pop label { display: block; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; color: var(--cinza-600); margin-bottom: 10px; }
.metrics-daterange-pop input { width: 100%; height: 36px; margin-top: 5px; padding: 0 10px; border: 1px solid var(--borda); border-radius: 9px; font-size: 13px; }
.metrics-daterange-hint { margin: 2px 0 0; font-size: 11.5px; color: var(--cinza-400); }

/* exportar */
.metrics-export { position: relative; }
.metrics-export-menu {
  display: none; position: absolute; top: calc(100% + 6px); right: 0; z-index: 30;
  background: #fff; border: 1px solid var(--borda); border-radius: 12px;
  box-shadow: var(--sombra-lg); min-width: 256px; overflow: hidden;
}
.metrics-export.aberto .metrics-export-menu { display: block; }
.metrics-export-menu a { display: flex; align-items: flex-start; gap: 10px; padding: 11px 14px; color: var(--texto); font-size: 13.5px; font-weight: 600; }
.metrics-export-menu a + a { border-top: 1px solid var(--borda); }
.metrics-export-menu a:hover { background: var(--cinza-50); }
.metrics-export-menu svg { width: 16px; height: 16px; margin-top: 2px; color: var(--cinza-600); }
.metrics-export-menu span { display: flex; flex-direction: column; }
.metrics-export-menu i { font-style: normal; font-size: 11.5px; font-weight: 500; color: var(--cinza-400); margin-top: 2px; }

/* barra de filtros */
.metrics-filterbar {
  display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap;
  background: #fff; border: 1px solid var(--borda); border-radius: var(--raio-lg);
  padding: 14px 16px; margin-bottom: 16px;
}
.metrics-filter { flex: 1 1 170px; min-width: 150px; }
.metrics-filter label { display: block; font-size: 12.5px; font-weight: 700; color: var(--cinza-600); margin-bottom: 6px; }
.metrics-filter select {
  width: 100%; height: 38px; padding: 0 30px 0 12px;
  border: 1px solid var(--borda); border-radius: 10px; background-color: #fff; font-size: 13.5px;
}
.metrics-clear {
  display: inline-flex; align-items: center; gap: 7px; height: 38px; padding: 0 14px;
  border: 1px solid #e0d9ff; border-radius: 10px; background: #f6f3ff;
  color: var(--roxo-1); font-size: 13px; font-weight: 700; white-space: nowrap;
}
.metrics-clear:hover { background: #ede7ff; }
.metrics-clear svg { width: 15px; height: 15px; }
.metrics-clear.is-off { opacity: .55; }

@media (max-width: 820px) {
  .metrics-filter { flex: 1 1 100%; }
  .metrics-clear { width: 100%; justify-content: center; }
}

/* ============================================================
   Métricas — cards de topo, gráfico de linha, resumo de vagas
   e qualidade por origem (26/10)
   ============================================================ */
.metrics-kpi-strip { grid-template-columns: repeat(9, minmax(112px, 1fr)); }
.metrics-kpi.flat { align-items: center; gap: 11px; padding: 12px 12px; }
.metrics-kpi.flat > div { min-width: 0; }
.metrics-kpi-icon {
  width: 36px; height: 36px; flex: none; border-radius: 11px;
  display: flex; align-items: center; justify-content: center;
}
.metrics-kpi-icon svg { width: 18px; height: 18px; }
.metrics-kpi-icon.roxo   { background: #efeaff; color: #6244e5; }
.metrics-kpi-icon.indigo { background: #e8ecff; color: #3f55d6; }
.metrics-kpi-icon.verde  { background: #e4f6ec; color: #168348; }
.metrics-kpi-icon.laranja{ background: #fdeede; color: #bd6300; }
.metrics-kpi.flat > div > b { font-size: 22px; }
.metrics-kpi.flat > div > span { margin-top: 4px; line-height: 1.25; }

/* gráfico de linha da evolução mensal */
.metrics-line-chart { width: 100%; }
.metrics-line-svg { width: 100%; height: auto; display: block; overflow: visible; }
.metrics-line-val { font-size: 15px; font-weight: 800; fill: #4b3fd6; }
.metrics-line-mes { font-size: 13px; font-weight: 600; fill: var(--texto-3); }

/* resumo de vagas: rótulo em cima, número embaixo */
.metrics-vacancy-summary > div { gap: 10px; }
.metrics-vacancy-summary span { flex: 1; font-size: 12px; font-weight: 600; }
.metrics-vacancy-summary b { font-size: 24px; font-weight: 800; margin-top: 7px; }

/* qualidade dos perfis por origem */
.metrics-source-ring {
  position: relative; width: 132px; height: 132px; margin: 2px auto 16px;
}
.metrics-source-ring > i {
  position: absolute; inset: 0; border-radius: 50%;
  background: conic-gradient(#7c4dff calc(var(--pct) * 1%), #ede9fb 0);
}
.metrics-source-ring > i::after { content: ''; position: absolute; inset: 15px; border-radius: 50%; background: #fff; }
.metrics-source-ring > b {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-size: 25px; font-weight: 800; color: #2d2b38;
}
.metrics-source-list { display: flex; flex-direction: column; gap: 11px; }
.metrics-source-row { display: grid; grid-template-columns: minmax(74px, 108px) 1fr auto; gap: 11px; align-items: center; }
.metrics-source-row > span { font-size: 12.5px; color: var(--texto); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.metrics-source-row > i { height: 9px; border-radius: 999px; background: #efecfb; display: block; overflow: hidden; }
.metrics-source-row > i > u { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg,#8b5cf6,#6244e5); }
.metrics-source-row > em { font-style: normal; font-size: 12.5px; font-weight: 700; color: var(--texto-3); min-width: 34px; text-align: right; }

@media (max-width: 1280px) {
  .metrics-kpi-strip { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

/* ícones dos cards de topo em destaque, sem estourar o card */
.metrics-kpi.flat { gap: 12px; padding: 12px 11px; }
.metrics-kpi-icon { width: 46px; height: 46px; border-radius: 14px; }
.metrics-kpi-icon svg { width: 25px; height: 25px; }
@media (max-width: 1500px) {
  .metrics-kpi-icon { width: 42px; height: 42px; border-radius: 13px; }
  .metrics-kpi-icon svg { width: 23px; height: 23px; }
  .metrics-kpi.flat > div > b { font-size: 21px; }
}

/* a caixa do SVG é larga: os textos precisam de corpo maior para não encolherem */
.metrics-line-val { font-size: 20px; }
.metrics-line-mes { font-size: 17px; }

/* texto do gráfico de linha: corpo menor, como no layout aprovado */
.metrics-line-val { font-size: 16px; }
.metrics-line-mes { font-size: 14px; }

/* anel de qualidade por origem: desenhado em SVG, com ponta arredondada */
.metrics-source-ring { width: 112px; height: 112px; margin: 0 auto 16px; }
.metrics-source-ring > i { display: none; }
.metrics-ring-svg { width: 100%; height: 100%; display: block; }
.metrics-source-ring > b { font-size: 23px; color: #2d2b38; }

/* ajuste fino: o SVG do gráfico é desenhado numa caixa de 1000 de largura,
   então 1 unidade ≈ 1px na tela cheia — os rótulos precisam ser pequenos */
.metrics-line-val { font-size: 13px; }
.metrics-line-mes { font-size: 11.5px; }

/* anel menor, com o número em maior destaque */
.metrics-source-ring { width: 94px; height: 94px; margin: 0 auto 18px; }
.metrics-source-ring > b { font-size: 26px; }

/* as duas caixas do Comparativo de Candidatos estavam sem estilo (select cru
   do navegador): recebem o mesmo acabamento das caixas da barra de filtros */
.metrics-comparison-filters select {
  width: 100%; height: 38px; padding: 0 34px 0 13px;
  border: 1px solid var(--borda); border-radius: 10px; background-color: #fff;
  font-size: 13.5px; font-weight: 600; color: var(--roxo-1);
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b6f7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 11px center; background-size: 15px 15px;
  cursor: pointer;
}
.metrics-comparison-filters select:hover { background-color: var(--cinza-50); }
.metrics-comparison-filters select:focus { outline: none; border-color: var(--roxo-1); box-shadow: 0 0 0 3px rgba(104,87,255,.14); }

/* histórico mensal de vagas: mais alto e com texto maior, para ficar na mesma
   escala do gráfico de linha ao lado (só este painel usa estas classes agora) */
.metrics-monthly-chart { height: 152px; padding: 0 24px; }
.metrics-monthly-chart > div { grid-template-rows: 22px 1fr 22px; min-width: 56px; }
.metrics-monthly-chart b { font-size: 13px; }
.metrics-monthly-chart span { font-size: 12px; }
.metrics-monthly-chart i { width: 34px; }
.metrics-monthly-double > div { grid-template-rows: 22px 1fr 22px; }
.metrics-monthly-double > div > small { font-size: 12px; }
.metrics-double-bars { width: 52px; gap: 5px; }
.metrics-monthly-chart .metrics-double-bars i { width: 16px; }
.metrics-monthly-legend { font-size: 11px; }

/* as caixas do Comparativo usam a cor de texto padrão do sistema */
.metrics-comparison-filters select { color: var(--texto); font-weight: 500; }

/* histórico mensal de vagas: usa o resto do espaço da seção e aproxima o
   corpo do texto do gráfico de linha ao lado */
.metrics-monthly-chart { height: 184px; }
.metrics-monthly-chart > div { grid-template-rows: 24px 1fr 24px; }
.metrics-monthly-chart b { font-size: 14.5px; }
.metrics-monthly-chart span { font-size: 13px; }
.metrics-monthly-double > div { grid-template-rows: 24px 1fr 24px; }
.metrics-monthly-double > div > small { font-size: 13px; }

/* anel de qualidade por origem: volta ao diâmetro maior, com o valor
   centrado de verdade (camada própria, sem herdar linha de texto) */
.metrics-source-ring { position: relative; width: 112px; height: 112px; margin: 0 auto 18px; }
.metrics-source-ring > b {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 24px; font-weight: 800; line-height: 1; color: #2d2b38;
}

/* ============================================================
   Funil: cabeçalho de cada coluna na cor da etapa (as mesmas
   variáveis usadas nos badges e na linha do tempo da ficha).
   O cartão continua branco: a cor dele já significa aderência.
   ============================================================ */
.kanban-col[class*="stage-color-"] { border-top: 3px solid var(--stage-border); }
.kanban-col[class*="stage-color-"] > .kanban-col-head {
  background: var(--stage-bg);
  color: var(--stage-text);
  border-bottom-color: var(--stage-border);
  border-radius: calc(var(--raio-lg) - 3px) calc(var(--raio-lg) - 3px) 0 0;
}
.kanban-col[class*="stage-color-"] > .kanban-col-head .count {
  background: var(--stage-strong);
  color: var(--stage-text);
}
.kanban-col[class*="stage-color-"] > .kanban-col-body.drag-over { background: var(--stage-bg); }

/* Funil: miolo da coluna no tom pastel da etapa. O cartão continua branco e
   ganha contraste contra o fundo colorido. */
.kanban-col[class*="stage-color-"] > .kanban-col-body {
  background: var(--stage-bg);
  border-radius: 0 0 calc(var(--raio-lg) - 1px) calc(var(--raio-lg) - 1px);
}
/* com o fundo já colorido, o "aceso" do arraste precisa do tom forte da etapa,
   senão a coluna de destino não se distingue das outras */
.kanban-col[class*="stage-color-"] > .kanban-col-body.drag-over {
  background: var(--stage-strong);
  box-shadow: inset 0 0 0 2px var(--stage-border);
}
/* o "solte aqui" das colunas vazias acompanha a cor da etapa */
.kanban-col[class*="stage-color-"] .kanban-empty { border-color: var(--stage-border); color: var(--stage-text); opacity: .75; }

/* ============================================================
   Funil — seleção múltipla e ações em lote
   ============================================================ */
.kanban-card .kc-pick { display: flex; align-items: center; flex: none; }
.kanban-card .kc-pick input { width: 15px; height: 15px; accent-color: var(--roxo-1); cursor: pointer; margin: 0; }
.kanban-card.selecionado { border-color: var(--roxo-1); box-shadow: 0 0 0 2px rgba(104,87,255,.18); }
.kanban-card .kc-sub { margin-left: 59px; }

.funil-selbar {
  position: fixed; left: 50%; bottom: 22px; z-index: 70;
  transform: translateX(-50%) translateY(150%);
  display: flex; align-items: center; gap: 10px;
  background: #1e1f27; color: #fff; border-radius: 14px; padding: 10px 12px;
  box-shadow: var(--sombra-lg); transition: transform .18s ease;
}
.funil-selbar.aberta { transform: translateX(-50%) translateY(0); }
.funil-selbar b { font-size: 13.5px; padding-right: 2px; }
.funil-selbar-link { background: none; border: 0; color: #b9b6ff; font-weight: 600; font-size: 12.5px; cursor: pointer; padding: 5px 6px; }
.funil-selbar-link:hover { color: #fff; }
.funil-selbar-sep { width: 1px; height: 20px; background: #3a3b47; }

/* modais em lote */
.modal-head .modal-sub { font-size: 12.5px; color: var(--cinza-600); margin-top: 3px; }
.lote-alvo { border: 1px solid var(--borda); border-radius: 11px; background: var(--cinza-50); padding: 11px 12px; }
.lote-alvo h4 { margin: 0 0 9px; font-size: 12px; text-transform: uppercase; letter-spacing: .4px; color: var(--cinza-600); }
.lote-tag { display: inline-block; background: var(--cinza-200); color: var(--cinza-600); border-radius: 6px; padding: 1px 7px; font-size: 11px; font-weight: 700; margin-left: 6px; }
.lote-chips { display: flex; flex-wrap: wrap; gap: 7px; max-height: 128px; overflow-y: auto; }
.lote-chip { display: inline-flex; align-items: center; gap: 7px; background: #fff; border: 1px solid var(--borda); border-radius: 999px; padding: 4px 7px 4px 11px; font-size: 12.5px; }
.lote-chip button { border: 0; background: var(--cinza-100); color: var(--cinza-600); border-radius: 50%; width: 18px; height: 18px; line-height: 1; cursor: pointer; font-size: 13px; padding: 0; }
.lote-chip button:hover { background: #ffe0e0; color: var(--vermelho); }
.lote-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.lote-grid2 .field { margin: 0; }
.lote-aviso { display: flex; gap: 9px; background: #fff8e6; border: 1px solid #f3dfa8; color: #8a5b00; border-radius: 10px; padding: 10px 12px; font-size: 12.5px; margin-top: 16px; }
.lote-aplicar { background: none; border: 0; color: var(--roxo-1); font-weight: 700; font-size: 11.5px; cursor: pointer; padding: 0 0 0 8px; }
.lote-sal { width: 100%; border-collapse: collapse; margin-top: 6px; }
.lote-sal td { padding: 6px 10px 6px 0; border-top: 1px solid var(--borda); font-size: 13.5px; }
.lote-sal td:first-child { width: 46%; }
.lote-sal input { width: 100%; height: 34px; border: 1px solid var(--borda); border-radius: 9px; padding: 0 10px; font-size: 13.5px; }
.modal-foot .btn-danger, .funil-selbar .btn-danger { border: 0; color: #fff; background: linear-gradient(160deg,#e4434f,#c2182a); }
.modal-foot .btn-danger:hover, .funil-selbar .btn-danger:hover { background: linear-gradient(160deg,#d5333f,#a81222); }

@media (max-width: 700px) {
  .lote-grid2 { grid-template-columns: 1fr; }
  .funil-selbar { left: 12px; right: 12px; transform: none; width: auto; flex-wrap: wrap; }
  .funil-selbar.aberta { transform: none; }
}

/* caixa "selecionar todos" no cabeçalho da coluna do funil */
.kanban-col-head { gap: 9px; }
.kanban-col-head .kanban-col-titulo { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kc-pick-col { display: flex; align-items: center; flex: none; }
.kc-pick-col input { width: 15px; height: 15px; accent-color: var(--roxo-1); cursor: pointer; margin: 0; }
.kc-pick-col input:disabled { cursor: default; opacity: .4; }

/* a barra de seleção agora só conta e orienta: as ações saem do arraste */
.funil-selbar-dica { font-size: 12.5px; color: #a9abb8; }
@media (max-width: 700px) { .funil-selbar-dica { display: none; } }

/* a barra de seleção agora só conta e explica; as ações são o arraste */
.funil-selbar-dica { font-size: 12.5px; color: #a6a8b5; }
@media (max-width: 700px) { .funil-selbar-dica { display: none; } }

/* ============================================================
   Métricas — categorias de indicadores
   ============================================================ */
.metrics-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.metrics-tab {
  display: inline-flex; align-items: center; gap: 8px;
  height: 40px; padding: 0 16px;
  border: 1px solid var(--borda); border-radius: 11px; background: #fff;
  color: var(--cinza-600); font-size: 13.5px; font-weight: 600; cursor: pointer;
  transition: background .12s ease, color .12s ease, border-color .12s ease;
}
.metrics-tab svg { width: 16px; height: 16px; }
.metrics-tab:hover { background: var(--cinza-50); color: var(--texto); }
.metrics-tab.ativa {
  border-color: transparent; color: #fff; font-weight: 700;
  background: linear-gradient(160deg,#7c3aed 0%,#6d28d9 45%,#4338ca 100%);
  box-shadow: 0 2px 8px rgba(109,40,217,.3);
}
.metrics-tab.ativa svg { color: #fff; }
.metrics-main-grid.uma-coluna,
.metrics-acquisition-grid.uma-coluna,
.metrics-detail-grid.uma-coluna,
.metrics-monthly-section.uma-coluna { grid-template-columns: 1fr; }
@media (max-width: 760px) {
  .metrics-tabs { gap: 6px; }
  .metrics-tab { height: 36px; padding: 0 12px; font-size: 12.5px; }
}

/* O SVG do gráfico de linha tinha altura automática: ao ficar sozinho na
   faixa (aba Funil), dobrava de largura e o desenho inteiro — texto junto —
   escalava junto. Com altura fixa e "meet", a escala passa a ser limitada
   pela altura, então o desenho fica do mesmo tamanho em qualquer largura. */
.metrics-line-svg { height: 172px; width: 100%; }
.metrics-monthly-section.uma-coluna .metrics-line-chart { max-width: 1000px; margin: 0 auto; }

/* ============================================================
   Métricas — telas pequenas
   Este bloco vem por último de propósito: ele precisa vencer as
   regras de largura escritas acima (inclusive o repeat(5) de 1280).
   ============================================================ */
@media (max-width: 1100px) {
  .metrics-kpi-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 880px) {
  .metrics-page-header { flex-direction: column; align-items: stretch; gap: 12px; }
  .metrics-header-actions { width: 100%; justify-content: flex-start; flex-wrap: wrap; gap: 8px; }
  .metrics-header-actions .btn { flex: 1 1 auto; justify-content: center; }
  .metrics-daterange, .metrics-export { flex: 1 1 170px; }
  .metrics-daterange-btn, .metrics-export > .btn { width: 100%; justify-content: center; }
  .metrics-daterange-pop, .metrics-export-menu { left: 0; right: 0; min-width: 0; }
  .metrics-kpi-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  /* abas viram uma faixa que rola, em vez de quebrar em três linhas */
  .metrics-tabs { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
  .metrics-tabs::-webkit-scrollbar { display: none; }
  .metrics-tab { flex: 0 0 auto; }

  /* o gráfico de linha rola na horizontal: encolher até caber deixaria
     os rótulos ilegíveis, porque o desenho inteiro escala junto */
  .metrics-line-chart { overflow-x: auto; }
  .metrics-line-svg { min-width: 620px; }
  .metrics-monthly-section.uma-coluna .metrics-line-chart { max-width: none; }
}
@media (max-width: 640px) {
  .metrics-kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding: 8px; }
  .metrics-kpi { height: auto; min-height: 84px; }
  .metrics-kpi.flat { gap: 9px; padding: 10px 9px; }
  .metrics-kpi-icon { width: 38px; height: 38px; border-radius: 11px; }
  .metrics-kpi-icon svg { width: 20px; height: 20px; }
  .metrics-kpi.flat > div > b { font-size: 19px; }
  .metrics-kpi.flat > div > span { font-size: 11px; }
  .metrics-kpi.ratio { padding-top: 36px; }

  .metrics-filterbar { padding: 12px; gap: 10px; }

  /* resumo de vagas: dois por linha em vez de quatro espremidos */
  .metrics-vacancy-summary > div { flex-wrap: wrap; row-gap: 14px; }
  .metrics-vacancy-summary span { flex: 1 1 calc(50% - 10px); }

  /* qualidade por origem: nome e % em cima, barra embaixo */
  .metrics-source-row { grid-template-columns: 1fr auto; gap: 5px 10px; }
  .metrics-source-row > i { grid-column: 1 / -1; order: 3; }
  .metrics-source-row > em { order: 2; }

  .metrics-funnel > div { min-width: 0; width: 100%; }
  .metrics-monthly-chart { height: 150px; padding: 0 2px; }
  .metrics-monthly-chart b { font-size: 12px; }
  .metrics-monthly-chart span,
  .metrics-monthly-double > div > small { font-size: 11px; }
  .metrics-comparison-filters { grid-template-columns: 1fr; }
}
@media (max-width: 430px) {
  .metrics-tab { height: 34px; padding: 0 11px; font-size: 12px; }
  .metrics-kpi.flat > div > b { font-size: 18px; }
  .metrics-line-svg { min-width: 540px; }
}

/* ============================================================
   Início — cards em destaque e seções de altura fixa
   ============================================================ */
.stat-card.mini .icon-badge { width: 44px; height: 44px; border-radius: 13px; }
.stat-card.mini .icon-badge svg { width: 22px; height: 22px; }
.stat-card.mini { align-items: center; gap: 13px; padding: 15px 16px; }
.stat-card.mini .value { font-size: 23px; }
.stat-card.mini .label { font-size: 11px; letter-spacing: .3px; }

/* cabeçalho do cartão: ícone, título, descrição, contador e "Ver todas" */
.dash-card-head { display: flex; align-items: flex-start; gap: 11px; margin-bottom: 12px; }
.dash-card-head > .icon-badge { width: 36px; height: 36px; border-radius: 11px; }
.dash-card-head > .icon-badge svg { width: 18px; height: 18px; }
.dash-card-ident { flex: 1; min-width: 0; }
.dash-card-ident h3 { margin: 0; font-size: 15px; font-weight: 700; line-height: 1.2; }
.dash-card-ident span { display: block; font-size: 11.5px; color: var(--cinza-600); margin-top: 3px; }
.dash-card-head .count-pill { margin: 2px 0 0; flex: none; }
.dash-verall {
  flex: none; display: inline-flex; align-items: center; gap: 5px;
  background: var(--cinza-50); border: 1px solid var(--borda); border-radius: 999px;
  padding: 5px 12px; font-size: 12px; font-weight: 700; color: var(--cinza-600); white-space: nowrap;
}
.dash-verall span { font-size: 14px; line-height: 1; }
.dash-verall:hover { background: #f1eeff; border-color: #ddd4ff; color: var(--roxo-1); }

/* Altura fixa: os quatro cartões são filhos diretos da grade (2x2), então
   cada linha tem a mesma altura nas duas colunas. Antes eles viviam dentro
   de duas colunas independentes e cada uma crescia por conta própria — era
   isso que deixava as colunas terminando em alturas diferentes. */
/* o .dash-grid original tem align-items:start, que impede os cartões de
   esticarem até a altura da linha — por isso as colunas fechavam torto */
/* linhas pelo conteúdo (auto), não iguais entre si (1fr): com 1fr a segunda
   linha copiava a altura da primeira e sobrava branco no pé dos dois.
   O stretch continua igualando os dois cartões DENTRO de cada linha. */
.dash-grid { grid-auto-rows: auto; align-items: stretch; }
.dash-card { display: flex; flex-direction: column; height: 100%; }
.dash-card .dash-list { flex: 1; min-height: 150px; }
/* o space-between esticava as sete etapas até preencher a altura do cartão,
   criando um vão entre linhas que não existe nas outras seções */
.dash-card.funil-rapido .dash-list { display: block; }
.funil-rapido .fr-row { margin-bottom: 9px; }
.funil-rapido .fr-top { margin-bottom: 4px; }

/* chip de data da entrevista */
.agenda-quando {
  flex: none; width: 56px; text-align: center; border-radius: 10px; padding: 6px 4px;
  background: #f1eeff; color: var(--roxo-1);
}
.agenda-quando b { display: block; font-size: 11.5px; font-weight: 700; line-height: 1.1; }
.agenda-quando span { display: block; font-size: 11px; color: #7c6ff0; margin-top: 2px; }
.entrevista-item .item-avatar { width: 30px; height: 30px; font-size: 11px; }
.entrevista-item .item-meta .badge { font-size: 11px; }

@media (max-width: 880px) {
  .dash-card-head { flex-wrap: wrap; }
  .dash-verall { margin-left: auto; }
  .dash-card .dash-list,
  .dash-card.funil-rapido .dash-list { min-height: 0; }
}

/* Existe um `.card + .card { margin-top: 16px }` global. Enquanto os cartões
   viviam dentro de duas colunas, ele só pegava o segundo de cada coluna e
   passava despercebido. Agora que os quatro são irmãos na grade, ele empurrava
   o 2º (primeiro da coluna da direita) 16px para baixo. */
.dash-grid > .card + .card { margin-top: 0; }

/* contador ao lado do "Ver todas": mesma pastilha do botão, em roxo claro */
.dash-card-head .count-pill {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 26px; height: 28px; padding: 0 9px; margin: 0;
  background: #f1eeff; color: var(--roxo-1);
  border: 1px solid #e3dcff; border-radius: 999px;
  font-size: 12px; font-weight: 700;
}
.dash-card-head .dash-verall { height: 28px; padding: 0 12px; }

/* o respiro do último item: a linha de parados tem 10px de padding abaixo do
   texto, então o branco visível até a borda é 31px. A barra do funil não tem
   padding nenhum, por isso precisa desses 10px para empatar aos olhos. */
.funil-rapido .fr-row:last-child { margin-bottom: 10px; }

/* o avatar recebe a cor do candidato por style inline; o gradiente fixo só
   vale como reserva quando não houver cor */
.item-avatar { background: var(--roxo-grad); }

/* ---------- Início em telas pequenas ---------- */
@media (max-width: 880px) {
  .stat-grid.dash-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dash-grid { grid-template-columns: minmax(0, 1fr); }
  .dash-card .dash-list { min-height: 0; }
}
@media (max-width: 640px) {
  .stat-grid.dash-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .stat-card.mini { padding: 12px; gap: 10px; }
  .stat-card.mini .icon-badge { width: 38px; height: 38px; border-radius: 11px; }
  .stat-card.mini .icon-badge svg { width: 19px; height: 19px; }
  .stat-card.mini .value { font-size: 20px; }
  .stat-card.mini .label { font-size: 10.5px; white-space: normal; }

  /* ícone e título na primeira linha; contador e botão descem juntos,
     alinhados à direita */
  .dash-card-head { flex-wrap: wrap; row-gap: 9px; align-items: center; }
  .dash-card-ident { flex: 1 1 calc(100% - 47px); }
  .dash-card-head .count-pill { margin-left: auto; }
  /* só o contador empurra; sem isso o botão também tinha margin-left:auto
     (regra dos 880px) e os dois ficavam separados no meio da linha */
  .dash-card-head .dash-verall { margin-left: 0; }

  /* o chip de data e o avatar juntos espremiam o nome; a etapa desce para
     a linha de baixo em vez de ser cortada no meio */
  .agenda-quando { width: 48px; padding: 5px 3px; }
  .entrevista-item .item-avatar { display: none; }
  .entrevista-item { flex-wrap: wrap; row-gap: 6px; }
  .entrevista-item .item-meta { flex: 1 1 100%; text-align: left; padding-left: 59px; }
  .entrevista-item .item-meta .badge { font-size: 10.5px; padding: 2px 8px; }
  .vaga-venc-item .icon-badge { width: 32px; height: 32px; border-radius: 9px; }
  .vaga-venc-item .icon-badge svg { width: 16px; height: 16px; }
  .page-header .today-badge { white-space: nowrap; }
}
@media (max-width: 430px) {
  .stat-grid.dash-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dash-card-ident h3 { font-size: 14.5px; }
}

/* anel de aderência nas listas de candidatos */
.aderencia-anel { position: relative; display: inline-flex; width: 44px; height: 44px; }
.aderencia-anel svg { width: 44px; height: 44px; display: block; }
.aderencia-anel > b {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 11.5px; font-weight: 800; line-height: 1; color: var(--texto);
}

/* etapa na lista de candidatos: ponto na cor da etapa + texto neutro.
   A pastilha preenchida competia com o anel de aderência, e numa vaga com
   muitos reprovados virava um bloco vermelho que não informava nada. */
.etapa-ponto { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 600; color: var(--cinza-600); }
.etapa-ponto i { width: 8px; height: 8px; border-radius: 50%; flex: none; }

/* opção B: com a etapa virando ponto, a barra de tempo também perde peso */
.candidate-stage-time-bar { height: 4px; }

/* ------------------------------------------------------------------
   Lista de candidatos no celular: o anel de aderência sobe para a
   linha do nome, encostado à direita do card. Antes ele dividia a
   segunda linha com etapa e estrelas, e o conjunto ficava apertado.
   ------------------------------------------------------------------ */
@media (max-width: 700px) {
  .candidate-list-card {
    grid-template-columns: 42px max-content minmax(0, 1fr) 48px;
    grid-template-areas:
      "avatar name name adherence"
      "status status rating adherence"
      "meta meta meta meta"
      "stage-time stage-time stage-time stage-time"
      "contact contact contact actions";
  }
  .candidate-list-adherence {
    justify-self: end; align-self: center; width: auto;
  }
  .candidate-list-rating { justify-self: start; }
}
@media (max-width: 390px) {
  .candidate-list-card {
    grid-template-columns: 36px max-content minmax(0, 1fr) 46px;
    grid-template-areas:
      "avatar name name adherence"
      "status status rating adherence"
      "meta meta meta meta"
      "stage-time stage-time stage-time stage-time"
      "contact contact contact contact"
      "actions actions actions actions";
  }
  .aderencia-anel, .aderencia-anel svg { width: 40px; height: 40px; }
  .aderencia-anel > b { font-size: 11px; }
}
/* a quinta estrela saía cortada na largura antiga do slot */
@media (max-width: 700px) {
  .candidate-list-stars-slot { width: 74px; flex-basis: 74px; }
}

/* ============================================================
   Funil: a cor da etapa recua para a tarja do topo e o contador.
   O pastel do miolo passa a ser ESTADO — acende quando a coluna
   tem seleção ou está recebendo um arraste.
   ============================================================ */
.kanban-col[class*="stage-color-"] > .kanban-col-head {
  background: #fff;
  color: var(--texto);
  border-bottom-color: var(--borda);
}
.kanban-col[class*="stage-color-"] > .kanban-col-head .count {
  background: var(--stage-bg);
  color: var(--stage-text);
}
.kanban-col[class*="stage-color-"] > .kanban-col-body {
  background: #fff;
  transition: background .14s ease;
}
.kanban-col[class*="stage-color-"] .kanban-empty { border-color: var(--borda); color: var(--cinza-400); opacity: 1; }

/* coluna com candidatos marcados: acende inteira */
.kanban-col[class*="stage-color-"].com-selecao > .kanban-col-head { background: var(--stage-bg); color: var(--stage-text); border-bottom-color: var(--stage-border); }
.kanban-col[class*="stage-color-"].com-selecao > .kanban-col-head .count { background: var(--stage-strong); }
.kanban-col[class*="stage-color-"].com-selecao > .kanban-col-body { background: var(--stage-bg); }

/* recebendo um arraste: o tom forte, para não se confundir com a seleção */
.kanban-col[class*="stage-color-"] > .kanban-col-body.drag-over {
  background: var(--stage-strong);
  box-shadow: inset 0 0 0 2px var(--stage-border);
}
/* tarja do topo mais forte e um pouco mais grossa, como na referência */
.kanban-col[class*="stage-color-"] { border-top: 4px solid var(--stage-text); }

/* A tarja usa o tom do texto da etapa, mas em Teste e Proposta esse tom é
   escuro demais (marrom e verde-petróleo) e destoa da faixa. Esses dois
   ganham um tom próprio só para a tarja; os demais seguem o --stage-text. */
.kanban-col[class*="stage-color-"] { --stage-bar: var(--stage-text); border-top-color: var(--stage-bar); }
.kanban-col.stage-color-teste    { --stage-bar: #f0b429; }
.kanban-col.stage-color-proposta { --stage-bar: #13b48f; }

/* botão de ordenação no funil, no mesmo gabarito dos campos da barra */
.funil-top-filters .candidate-order-button { height: 38px; white-space: nowrap; flex: none; }
@media (max-width: 700px) {
  .funil-top-filters { flex-wrap: wrap; }
  .funil-top-filters .candidate-order-button { width: 100%; justify-content: center; }
}
/* no celular os três controles do funil ocupam a largura inteira; o campo de
   busca e o seletor estavam em 50%, destoando do botão de ordenação */
@media (max-width: 700px) {
  .funil-top-filters { width: 100%; flex-wrap: wrap; row-gap: 9px; }
  .funil-top-filters input,
  .funil-top-filters select { width: 100%; flex: 1 1 100%; min-width: 0; }
}

/* a coluna reserva o espaço da barra de rolagem mesmo quando não rola:
   sem isso o cartão encolhe ~15px só nas colunas cheias */
.kanban-col-body { scrollbar-gutter: stable; }

/* o atalho de WhatsApp ocupa o lugar do antigo lápis no cartão */
.kanban-card .kc-actions .kc-wpp { color: #1aa352; }
.kanban-card .kc-actions .kc-wpp:hover { background: #e7f7ee; border-color: #b6e6cb; }
.kanban-card .kc-actions button[disabled] { opacity: .35; cursor: default; }
/* o link do WhatsApp precisa do mesmo gabarito dos botões vizinhos */
.kanban-card .kc-actions .kc-wpp {
  flex: 1; padding: 5px; border-radius: 6px; border: 1px solid var(--borda);
  background: var(--cinza-50); display: flex; align-items: center; justify-content: center;
}

/* ------------------------------------------------------------------
   Lista de candidatos: cabeçalho x linhas
   O cabeçalho (visível só acima de 1850px) e os cartões são duas
   grades separadas. A última coluna, de ações, era `auto`: no cartão
   tem os botões, no cabeçalho é vazia — então os trilhos flexíveis
   resolviam diferente nos dois. Isso vinha sendo compensado com
   `translateX(-66px)` e `margin-left:-12px` nos rótulos, números
   mágicos que se desfaziam a cada botão adicionado ou removido (foi o
   que aconteceu ao tirar o lápis).
   Correção: a coluna de ações passa a ter largura fixa — 3 × 36px de
   botão + 2 × 6px de intervalo — nas duas grades, nas duas faixas de
   largura em que o cabeçalho aparece. Os empurrões manuais saem.
   ------------------------------------------------------------------ */
@media (min-width: 1851px) and (max-width: 2250px) {
  .candidate-list-header-main,
  .candidate-list-main {
    grid-template-columns:
      minmax(300px, 400px) minmax(20px, .25fr) minmax(130px, 150px)
      70px 90px 150px minmax(280px, 1fr) minmax(16px, .2fr) 120px;
  }
}
@media (min-width: 2251px) {
  .candidate-list-header-main,
  .candidate-list-main {
    grid-template-columns:
      minmax(380px, 500px) minmax(80px, 1fr) minmax(160px, 180px)
      80px 100px 165px minmax(380px, 460px) minmax(80px, 1fr) 120px;
  }
}
.candidate-header-status,
.candidate-header-adherence,
.candidate-header-rating,
.candidate-header-contact,
.candidate-header-time { transform: none; }
.candidate-header-status,
.candidate-header-adherence,
.candidate-header-rating { margin-left: 0; }

/* o cartão tem borda esquerda de 4px (cor da etapa) e o cabeçalho de 1px:
   sem estes 3px o conteúdo começa deslocado em relação aos rótulos */
.candidate-list-header { padding-left: 19px; }
