/* Reclutamiento ------------------------------------------------------------
   App de RR.HH. basada en el lenguaje visual de Flowmo. Todo queda bajo el
   prefijo recruiting- para no contaminar Expedientes ni el resto del shell. */

/* styles.css pinta la tarjeta (categoria, borde al pasar, barra) con --app-*. */
.application-card--recruiting {
  --app-accent: #0f9f95;
  --app-soft: #f0fdfa;
  --app-ink: #0f766e;
}

.application-card--recruiting::before { background: #0f9f95; }
.application-card--recruiting .application-card-icon {
  color: #0f766e;
  border-color: #99f6e4;
  background: #f0fdfa;
}
.application-card--recruiting .application-run-button {
  color: #0f766e;
  border-color: #99f6e4;
  background: #f0fdfa;
}
.application-card--recruiting .application-run-button:hover { background: #ccfbf1; }
.application-card-chip--recruiting { color: #0f766e; background: #ccfbf1; border-color: #99f6e4; }

.app-shell.recruiting-central-lock {
  --assistant-side-size: 0px;
  --inbox-side-size: 0px;
  --swap-rail-size: 0px;
}
.app-shell.recruiting-central-lock .workspace-slot[data-slot="side"],
.app-shell.recruiting-central-lock .workspace-swap-rail,
.app-shell.recruiting-central-lock .panel-swap-button,
.app-shell.recruiting-central-lock .side-panel-collapse-button,
.app-shell.recruiting-central-lock .assistant-float-toggle { display: none !important; }

.applications-workspace.is-recruiting-open {
  overflow: hidden;
  grid-template-rows: minmax(0, 1fr);
  padding: 0;
  gap: 0;
}
.applications-workspace.is-recruiting-open .applications-hero,
.applications-workspace.is-recruiting-open .applications-board { display: none; }
.applications-workspace.is-recruiting-open .recruiting-panel {
  width: 100%;
  height: 100%;
  min-height: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.recruiting-panel {
  min-height: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  color: #0f172a;
  background: #f8fafc;
}
.recruiting-panel[hidden] { display: none !important; }

.recruiting-head {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 13px 54px 13px 20px;
  border-bottom: 1px solid #e2e8f0;
  background: #ffffff;
  position: relative;
}
.recruiting-head-copy nav {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 8px;
  color: #64748b;
  font-size: .76rem;
}
.recruiting-head-copy nav i { font-size: .68rem; }
.recruiting-head-copy nav strong { color: #334155; font-weight: 650; }
.recruiting-title-row { display: flex; align-items: center; gap: 11px; }
.recruiting-title-icon {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  border: 1px solid #fed7aa;
  border-radius: 10px;
  color: #c2410c;
  background: #fff7ed;
}
.recruiting-title-icon i { font-size: 1.08rem; }
.recruiting-title-row h3 { margin: 0; font-size: 1.18rem; line-height: 1.15; }
.recruiting-title-row p { margin: 3px 0 0; color: #64748b; font-size: .78rem; }
.recruiting-head-actions { display: flex; align-items: center; gap: 8px; }

.recruiting-primary-button,
.recruiting-secondary-button,
.recruiting-icon-button,
.recruiting-danger-button,
.recruiting-solid-danger-button,
.recruiting-ghost-button {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border-radius: 9px;
  padding: 7px 13px;
  font: inherit;
  font-size: .8rem;
  font-weight: 650;
  cursor: pointer;
  transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}
.recruiting-primary-button { border: 1px solid #0f8f86; color: #fff; background: #0f8f86; }
.recruiting-primary-button:hover { background: #0f766e; border-color: #0f766e; }
.recruiting-secondary-button { border: 1px solid #cbd5e1; color: #334155; background: #fff; }
.recruiting-secondary-button:hover { border-color: #94a3b8; background: #f8fafc; }
.recruiting-icon-button { width: 36px; padding: 0; border: 1px solid #cbd5e1; color: #475569; background: #fff; }
.recruiting-icon-button:hover { color: #0f766e; border-color: #5eead4; background: #f0fdfa; }
.recruiting-icon-button.is-spinning i { animation: recruiting-spin .8s linear infinite; }
.recruiting-danger-button { border: 1px solid #fecaca; color: #b91c1c; background: #fff; }
.recruiting-danger-button:hover { background: #fef2f2; }
.recruiting-ghost-button { border: 1px solid transparent; color: #475569; background: transparent; }
.recruiting-ghost-button:hover { background: #f1f5f9; }
.recruiting-primary-button:disabled,
.recruiting-secondary-button:disabled,
.recruiting-icon-button:disabled { opacity: .55; cursor: default; }
@keyframes recruiting-spin { to { transform: rotate(360deg); } }
.recruiting-solid-danger-button { border: 1px solid #dc2626; color: #fff; background: #dc2626; }
.recruiting-solid-danger-button:hover { border-color: #b91c1c; background: #b91c1c; }

/* Confirmaciones de Reclutamiento y Preingreso: una tarjeta al centro, por
   encima de la ficha (9500) y por debajo de los avisos (9700). */
.recruiting-confirm { position: fixed; inset: 0; bottom: auto; height: var(--recruiting-confirm-height, 100dvh); z-index: 9600; display: grid; place-items: center; padding: 20px; }
.recruiting-confirm-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, .42);
  backdrop-filter: blur(2px);
  opacity: 0;
  transition: opacity .16s ease;
}
.recruiting-confirm-card {
  position: relative;
  width: min(392px, 100%);
  max-height: calc(var(--recruiting-confirm-height, 100dvh) - 40px);
  overflow-y: auto;
  display: grid;
  justify-items: center;
  gap: 8px;
  padding: 26px 22px 20px;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 24px 64px rgba(15, 23, 42, .26), 0 2px 6px rgba(15, 23, 42, .08);
  text-align: center;
  opacity: 0;
  transform: translateY(10px) scale(.98);
  transition: opacity .18s ease, transform .18s ease;
}
.recruiting-confirm.is-open .recruiting-confirm-backdrop { opacity: 1; }
.recruiting-confirm.is-open .recruiting-confirm-card { opacity: 1; transform: none; }
.recruiting-confirm-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  margin-bottom: 4px;
  border-radius: 14px;
  font-size: 1.32rem;
}
.recruiting-confirm.is-info .recruiting-confirm-icon { color: #0f766e; background: #ccfbf1; }
.recruiting-confirm.is-aviso .recruiting-confirm-icon { color: #b45309; background: #fef3c7; }
.recruiting-confirm.is-peligro .recruiting-confirm-icon { color: #b91c1c; background: #fee2e2; }
.recruiting-confirm-card h3 { margin: 0; color: #0f172a; font-size: 1.04rem; line-height: 1.3; text-wrap: balance; }
.recruiting-confirm-card p { max-width: 32ch; margin: 0; color: #64748b; font-size: .84rem; line-height: 1.5; text-wrap: pretty; }
/* Un par de campos dentro de la tarjeta de preguntar: lo justo para dejar
   programado lo siguiente sin abrir la ficha entera. */
.recruiting-confirm-campos { width: 100%; display: grid; gap: 7px; margin-top: 14px; text-align: left; }
.recruiting-confirm-campos label { display: flex; align-items: baseline; gap: 6px; color: #334155; font-size: .75rem; font-weight: 700; }
.recruiting-confirm-campos label span { color: #94a3b8; font-size: .68rem; font-weight: 500; }
.recruiting-confirm-campos input {
  width: 100%;
  min-height: 38px;
  padding: 7px 10px;
  border: 1px solid #cbd5e1;
  border-radius: 9px;
  color: #0f172a;
  background: #fff;
  font: inherit;
  font-size: .82rem;
}
.recruiting-confirm-campos input:focus-visible { border-color: #0f766e; outline: 2px solid rgba(15, 118, 110, .2); outline-offset: 0; }
.recruiting-confirm-campos small { color: #94a3b8; font-size: .69rem; }
.recruiting-confirm-campos .recruiting-field { display: grid; gap: 6px; }
.recruiting-confirm-campos .recruiting-field > span { color: #334155; font-size: .75rem; font-weight: 600; }
.recruiting-confirm-campos select,
.recruiting-confirm-campos textarea { width: 100%; min-height: 40px; border: 1px solid #cbd5e1; border-radius: 9px; padding: 8px 10px; font: inherit; color: #0f172a; background: #fff; }
.recruiting-confirm-campos textarea { min-height: 68px; resize: vertical; }
.recruiting-confirm-campos [hidden] { display: none; }
.recruiting-option-group { padding: 9px 10px 3px; color: #475569; font-size: .69rem; font-weight: 700; }

.recruiting-process-summary { display: grid; gap: 6px; margin: 8px 0; }
.recruiting-process-current { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: #5b21b6; font-size: .74rem; }
.recruiting-process-current b { border-radius: 5px; background: #ede9fe; padding: 2px 6px; font-size: .68rem; }
.recruiting-process-done { color: #047857; font-size: .68rem; line-height: 1.45; }
.recruiting-process-done i { margin-right: 5px; }


.recruiting-confirm-actions { width: 100%; display: grid; gap: 8px; margin-top: 14px; }
.recruiting-confirm-actions.is-dos { grid-template-columns: 1fr 1fr; }
.recruiting-confirm-actions button { width: 100%; min-height: 40px; }
.recruiting-confirm-actions button:focus-visible { outline: 2px solid #0f766e; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  .recruiting-confirm-backdrop,
  .recruiting-confirm-card { transition: none; }
}

.recruiting-close-button { position: absolute; right: 10px; top: 10px; }
.recruiting-body { min-height: 0; flex: 1; overflow: auto; padding: 16px 18px 22px; }
.recruiting-loading,
.recruiting-empty {
  margin: 0;
  border: 1px dashed #cbd5e1;
  border-radius: 12px;
  padding: 34px 24px;
  color: #64748b;
  background: #fff;
  text-align: center;
}
.recruiting-loading i { display: inline-block; margin-right: 7px; animation: recruiting-spin .8s linear infinite; }
.recruiting-loading strong { color: #334155; }
.recruiting-empty strong { display: block; margin-bottom: 5px; color: #0f172a; font-size: .95rem; }

.recruiting-toolbar {
  display: grid;
  grid-template-columns: minmax(230px, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}
.recruiting-search { position: relative; display: flex; align-items: center; }
.recruiting-search i { position: absolute; left: 13px; color: #64748b; pointer-events: none; }
.recruiting-search input {
  width: 100%;
  min-height: 40px;
  border: 1px solid #cbd5e1;
  border-radius: 9px;
  padding: 8px 13px 8px 38px;
  color: #0f172a;
  background: #fff;
  font: inherit;
  font-size: .84rem;
}
.recruiting-search input:focus,
.recruiting-field input:focus,
.recruiting-field select:focus,
.recruiting-field textarea:focus {
  outline: 2px solid rgba(20, 184, 166, .22);
  border-color: #14b8a6;
}
.recruiting-scopes { display: flex; gap: 7px; }
.recruiting-plantilla-note { margin: 0 0 12px; padding: 10px 13px; border: 1px solid #cde5e1; border-radius: 9px; background: #f2fbf9; color: #285a58; font-size: .8rem; line-height: 1.45; }
.recruiting-scope {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid #d7dee8;
  border-radius: 9px;
  padding: 7px 13px;
  color: #334155;
  background: #fff;
  font: inherit;
  font-size: .8rem;
  font-weight: 600;
  cursor: pointer;
}
.recruiting-scope:hover { background: #f8fafc; }
.recruiting-scope.is-active { color: #0f766e; border-color: #5eead4; background: #f0fdfa; box-shadow: inset 0 0 0 1px rgba(20,184,166,.08); }
.recruiting-sync-note { color: #64748b; font-size: .72rem; white-space: nowrap; text-align: right; }
.recruiting-sync-note b { color: #334155; }

.recruiting-board {
  min-width: 980px;
  display: grid;
  grid-template-columns: repeat(5, minmax(185px, 1fr));
  gap: 10px;
  align-items: start;
}
.recruiting-column {
  position: relative;
  min-width: 0;
  border: 1px solid #e2e8f0;
  border-top: 3px solid var(--column-accent, #94a3b8);
  border-radius: 10px;
  background: #f8fafc;
  overflow: hidden;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.recruiting-column[data-stage="new"] { --column-accent: #64748b; --column-soft: #f1f5f9; }
.recruiting-column[data-stage="filter"] { --column-accent: #3b82f6; --column-soft: #eff6ff; }
.recruiting-column[data-stage="interview"] { --column-accent: #8b5cf6; --column-soft: #f5f3ff; }
.recruiting-column[data-stage="validation"] { --column-accent: #f97316; --column-soft: #fff7ed; }
.recruiting-column[data-stage="offer"] { --column-accent: #22a447; --column-soft: #f0fdf4; }
.recruiting-column.is-dragover { border-color: var(--column-accent); background: var(--column-soft); box-shadow: 0 0 0 3px color-mix(in srgb, var(--column-accent) 12%, transparent); }
.recruiting-column-head {
  min-height: 43px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 10px;
  border-bottom: 1px solid #e2e8f0;
  color: #0f172a;
  background: #fff;
  font-size: .78rem;
  font-weight: 750;
}
.recruiting-column-dot { width: 8px; height: 8px; flex: none; border-radius: 50%; background: var(--column-accent); }
.recruiting-column-count { color: #64748b; font-variant-numeric: tabular-nums; }
.recruiting-column-menu { margin-left: auto; color: #94a3b8; }
.recruiting-column-list { display: grid; gap: 8px; padding: 8px; }

.recruiting-candidate {
  min-width: 0;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  padding: 10px;
  color: #0f172a;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .035);
  cursor: pointer;
  transition: transform .14s ease, border-color .14s ease, box-shadow .14s ease;
}
.recruiting-candidate:hover { transform: translateY(-1px); border-color: #b8c5d5; box-shadow: 0 5px 14px rgba(15, 23, 42, .07); }
.recruiting-candidate:focus-visible { outline: 2px solid #14b8a6; outline-offset: 2px; }
.recruiting-candidate.is-dragging { opacity: .5; }
.recruiting-candidate-head { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.recruiting-avatar {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: var(--avatar-ink, #0f766e);
  background: var(--avatar-bg, #ccfbf1);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: -.02em;
}
.recruiting-candidate-title { min-width: 0; }
.recruiting-candidate-title strong,
.recruiting-candidate-title span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.recruiting-candidate-title strong { font-size: .79rem; }
.recruiting-candidate-title span { margin-top: 2px; color: #64748b; font-size: .7rem; }
.recruiting-card-menu { border: 0; padding: 3px; color: #64748b; background: transparent; cursor: pointer; }
.recruiting-card-lines { display: grid; gap: 5px; margin-top: 10px; }
.recruiting-card-line { min-width: 0; display: flex; align-items: center; gap: 7px; color: #64748b; font-size: .7rem; }
.recruiting-card-line i { width: 13px; flex: none; color: #64748b; text-align: center; }
.recruiting-card-line span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.recruiting-card-line strong { color: #334155; font-weight: 650; }
.recruiting-card-line.is-danger,
.recruiting-card-line.is-danger i { color: #dc2626; }
.recruiting-card-line.is-success,
.recruiting-card-line.is-success i { color: #16803a; }
.recruiting-card-footer { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 9px; }
.recruiting-status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 23px;
  border-radius: 999px;
  padding: 3px 9px;
  color: #475569;
  background: #f1f5f9;
  font-size: .66rem;
  font-weight: 700;
}
.recruiting-status-pill.is-filter { color: #1d4ed8; background: #dbeafe; }
.recruiting-status-pill.is-interview { color: #6d28d9; background: #ede9fe; }
.recruiting-status-pill.is-validation { color: #b45309; background: #fef3c7; }
.recruiting-status-pill.is-offer { color: #15803d; background: #dcfce7; }
.recruiting-review-button {
  width: 100%;
  min-height: 32px;
  margin-top: 9px;
  border: 1px solid #2dd4bf;
  border-radius: 8px;
  color: #0f766e;
  background: #f0fdfa;
  font: inherit;
  font-size: .72rem;
  font-weight: 750;
  cursor: pointer;
}
.recruiting-review-button:hover { background: #ccfbf1; }
.recruiting-column-empty { padding: 18px 10px; color: #94a3b8; text-align: center; font-size: .74rem; }
.recruiting-more { padding: 3px 8px 10px; color: #64748b; text-align: center; font-size: .7rem; }

.recruiting-modal-host:empty { display: none; }
.recruiting-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 9500;
  display: grid;
  place-items: center;
  grid-template-columns: minmax(0, 1fr);
  padding: 22px;
  background: rgba(15, 23, 42, .48);
}
.recruiting-modal {
  width: min(920px, 96vw);
  max-height: min(88vh, 880px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #cbd5e1;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 24px 65px rgba(15, 23, 42, .22);
}
.recruiting-modal.is-narrow { width: min(660px, 96vw); }
.recruiting-modal-head {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 15px 18px;
  border-bottom: 1px solid #e2e8f0;
}
.recruiting-modal-head-copy { min-width: 0; }
.recruiting-modal-head small { display: block; margin-bottom: 2px; color: #0f8f86; font-size: .69rem; font-weight: 750; text-transform: uppercase; letter-spacing: .06em; }
.recruiting-modal-head h4 { margin: 0; overflow: hidden; color: #0f172a; font-size: 1.02rem; text-overflow: ellipsis; white-space: nowrap; }
.recruiting-modal-close { width: 34px; height: 34px; border: 0; border-radius: 8px; color: #64748b; background: transparent; cursor: pointer; }
.recruiting-modal-close:hover { color: #0f172a; background: #f1f5f9; }
.recruiting-modal-body { min-height: 0; overflow: auto; padding: 17px 18px 20px; }
.recruiting-form { display: grid; gap: 15px; }
.recruiting-form-section { border: 1px solid #e2e8f0; border-radius: 11px; padding: 13px; }
.recruiting-form-section legend { padding: 0 5px; color: #334155; font-size: .74rem; font-weight: 750; }
.recruiting-form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px 12px; }
.recruiting-form-grid.is-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.recruiting-field { min-width: 0; display: grid; gap: 4px; align-content: start; }
.recruiting-field.is-wide { grid-column: 1 / -1; }
.recruiting-field > span { color: #475569; font-size: .71rem; font-weight: 650; }
.recruiting-field input,
.recruiting-field select,
.recruiting-field textarea {
  width: 100%;
  min-width: 0;
  min-height: 36px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 7px 9px;
  color: #0f172a;
  background: #fff;
  font: inherit;
  font-size: .8rem;
}
.recruiting-field textarea { min-height: 76px; resize: vertical; }
.recruiting-field small { color: #94a3b8; font-size: .66rem; }
/* El campo que falla: marco rojo y el por que debajo, hasta que se corrija. */
.recruiting-field.is-mal input,
.recruiting-field.is-mal select,
.recruiting-field.is-mal textarea { border-color: #ef4444; background: #fff5f5; animation: recruiting-campo-llama .9s ease-out 1; }
/* Las listas del area de aplicaciones son el desplegable propio de Flowmo: el
   <select> de verdad queda oculto, asi que el rojo -y el apagado- van en el
   boton que se ve. */
.recruiting-field.is-mal .flowmo-select-trigger {
  border-color: #ef4444;
  background: #fff5f5;
  animation: recruiting-campo-llama .9s ease-out 1;
}
.recruiting-field .flowmo-select-menu[data-disabled="true"] .flowmo-select-trigger {
  border-color: #e2e8f0;
  color: #64748b;
  background: #f8fafc;
  cursor: default;
  box-shadow: none;
}
.recruiting-field .flowmo-select-menu[data-disabled="true"] .flowmo-select-chevron { opacity: .35; }
@keyframes recruiting-campo-llama {
  0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, .45); }
  100% { box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .recruiting-field.is-mal input,
  .recruiting-field.is-mal select,
  .recruiting-field.is-mal textarea,
  .recruiting-field.is-mal .flowmo-select-trigger { animation: none; }
}
.recruiting-field.is-mal input:focus,
.recruiting-field.is-mal select:focus,
.recruiting-field.is-mal textarea:focus { outline-color: #ef4444; }
.recruiting-campo-error { color: #b91c1c !important; font-size: .66rem; font-weight: 600; }
.recruiting-validation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.recruiting-validation {
  display: grid;
  gap: 8px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  padding: 10px;
  background: #f8fafc;
}
.recruiting-validation-head { display: flex; align-items: center; gap: 8px; }
.recruiting-validation-head strong { color: #0f172a; font-size: .77rem; }
.recruiting-switch { margin-left: auto; display: inline-flex; align-items: center; gap: 5px; color: #64748b; font-size: .68rem; }
.recruiting-switch input { accent-color: #0f8f86; }
.recruiting-form-actions {
  position: sticky;
  bottom: -20px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin: 2px -18px -20px;
  padding: 12px 18px;
  border-top: 1px solid #e2e8f0;
  background: rgba(255,255,255,.97);
  backdrop-filter: blur(6px);
}
.recruiting-form-error { margin-right: auto; color: #b91c1c; font-size: .75rem; }

/* El pie del modal: fuera de lo que hace scroll, siempre a la vista y opaco.
   Cuando era una barra pegajosa DENTRO del formulario, en una pantalla corta la
   ficha se le subia encima. */
.recruiting-modal-footer {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 12px 18px;
  border-top: 1px solid #e2e8f0;
  background: #fff;
}
.recruiting-modal-footer .recruiting-form-error { margin-right: auto; }
@media (max-width: 620px) {
  .recruiting-modal-footer { flex-wrap: wrap; justify-content: stretch; }
  .recruiting-modal-footer button { flex: 1 1 auto; }
}

.recruiting-history { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.recruiting-history li { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; gap: 9px; align-items: start; color: #475569; font-size: .72rem; }
.recruiting-history-dot { width: 8px; height: 8px; margin-top: 4px; border-radius: 50%; background: #14b8a6; }
.recruiting-history time { color: #94a3b8; white-space: nowrap; }

/* La agenda --------------------------------------------------------------- */
.recruiting-agenda { display: grid; gap: 12px; }

/* Los filtros se quedan arriba al bajar por la lista: son la brújula de esta
   pantalla y perderlos de vista al tercer día es perder el hilo. */
.recruiting-agenda-filtros {
  position: sticky;
  z-index: 2;
  top: -17px;
  display: grid;
  gap: 8px;
  margin: -17px -18px 0;
  padding: 14px 18px 11px;
  border-bottom: 1px solid #eef2f7;
  background: rgba(255, 255, 255, .97);
  backdrop-filter: blur(6px);
}

.recruiting-agenda-tramos { display: flex; flex-wrap: wrap; gap: 7px; }
.recruiting-agenda-tramo {
  flex: 1 1 108px;
  display: grid;
  gap: 1px;
  padding: 8px 11px;
  border: 1px solid #e2e8f0;
  border-radius: 11px;
  color: #64748b;
  background: #fff;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, transform .15s ease;
}
.recruiting-agenda-tramo:hover:not(:disabled) { border-color: #cbd5e1; transform: translateY(-1px); }
.recruiting-agenda-tramo:disabled { cursor: default; }
.recruiting-agenda-tramo b {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #0f172a;
  font-size: 1.12rem;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}
.recruiting-agenda-tramo b i { font-size: .8rem; }
.recruiting-agenda-tramo span { font-size: .69rem; font-weight: 600; }
/* Cada tramo con su color, el mismo que después tienen sus días. Lo que viene
   va en azul rey y azul marino: el gris de antes se perdía contra el fondo y lo
   próximo es justo lo que hay que ver. */
.recruiting-agenda-tramo {
  --tramo-tinta: #334155;
  --tramo-suave: #f1f5f9;
  --tramo-borde: #94a3b8;
}
.recruiting-agenda-tramo.is-vencidas { --tramo-tinta: #dc2626; --tramo-suave: #fef2f2; --tramo-borde: #fca5a5; }
.recruiting-agenda-tramo.is-hoy { --tramo-tinta: #0f766e; --tramo-suave: #f0fdfa; --tramo-borde: #5eead4; }
.recruiting-agenda-tramo.is-semana { --tramo-tinta: #1d4ed8; --tramo-suave: #eff6ff; --tramo-borde: #93c5fd; }
.recruiting-agenda-tramo.is-despues { --tramo-tinta: #1e3a8a; --tramo-suave: #eef2ff; --tramo-borde: #a5b4fc; }
.recruiting-agenda-tramo b { color: var(--tramo-tinta); }
/* Un tramo vacío se queda apagado: no invita a entrar a ver nada. */
.recruiting-agenda-tramo.is-vacio { opacity: .55; }
.recruiting-agenda-tramo.is-vacio b { color: #94a3b8; }
/* El elegido se tiñe de su propio color en vez de pintarse de negro, que al
   lado de los otros cuatro se veía como un borrón. */
.recruiting-agenda-tramo.is-active {
  border-color: var(--tramo-borde);
  background: var(--tramo-suave);
  box-shadow: inset 0 0 0 1px var(--tramo-borde);
}
.recruiting-agenda-tramo.is-active b { color: var(--tramo-tinta); }
.recruiting-agenda-tramo.is-active span { color: var(--tramo-tinta); font-weight: 700; }
.recruiting-agenda-tramo.is-active.is-vacio { opacity: 1; }

.recruiting-agenda-gente { display: flex; flex-wrap: wrap; gap: 6px; }
.recruiting-agenda-quien {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  padding: 4px 10px 4px 5px;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  color: #475569;
  background: #fff;
  font: inherit;
  font-size: .72rem;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease;
}
.recruiting-agenda-quien:first-child { padding-left: 11px; }
.recruiting-agenda-quien:hover { border-color: #cbd5e1; background: #f8fafc; }
.recruiting-agenda-quien span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.recruiting-agenda-quien b { color: #94a3b8; font-variant-numeric: tabular-nums; }
.recruiting-agenda-quien em {
  padding: 1px 6px;
  border-radius: 999px;
  color: #0f766e;
  background: #ccfbf1;
  font-size: .62rem;
  font-style: normal;
  font-weight: 700;
}
.recruiting-agenda-quien.is-active { border-color: #0f766e; color: #0f766e; background: #f0fdfa; }
.recruiting-agenda-quien.is-active b { color: #0f766e; }
.recruiting-agenda-quien.is-active em { color: #fff; background: #0f766e; }

.recruiting-avatar.is-mini { width: 20px; height: 20px; font-size: .55rem; font-style: normal; }
.recruiting-avatar.is-mini.is-nadie { color: #94a3b8; background: #f1f5f9; border: 1px dashed #cbd5e1; }
.recruiting-avatar.is-mini.is-nadie b { font-size: .6rem; font-weight: 400; }

.recruiting-agenda-lista { display: grid; gap: 11px; }
.recruiting-agenda-dia { border: 1px solid #e2e8f0; border-radius: 12px; overflow: hidden; }
.recruiting-agenda-dia h5 {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 0;
  padding: 9px 13px;
  border-left: 3px solid #cbd5e1;
  color: #334155;
  background: #f8fafc;
  font-size: .77rem;
  font-weight: 750;
}
.recruiting-agenda-dia h5 em { color: #94a3b8; font-size: .69rem; font-style: normal; font-weight: 600; }
.recruiting-agenda-dia h5 b { margin-left: auto; color: #94a3b8; font-size: .7rem; font-variant-numeric: tabular-nums; }
/* Lo vencido en rojo y lo de hoy en verde: se ve sin leer la fecha. */
.recruiting-agenda-dia.is-vencido h5 { border-left-color: #ef4444; color: #b91c1c; background: #fef2f2; }
.recruiting-agenda-dia.is-vencido h5 em { color: #ef4444; }
.recruiting-agenda-dia.is-hoy h5 { border-left-color: #0f766e; color: #0f766e; background: #f0fdfa; }
.recruiting-agenda-dia.is-hoy h5 b { color: #0f766e; }
/* Lo que viene: azul rey, para que no se pierda contra el gris del fondo. */
.recruiting-agenda-dia.is-proximo h5 { border-left-color: #1d4ed8; color: #1e3a8a; background: #f5f8ff; }
.recruiting-agenda-dia.is-proximo h5 b { color: #1d4ed8; }
.recruiting-agenda-item:not(.is-vencida):not(.is-pasada) .recruiting-agenda-abrir > time { color: #1d4ed8; }

.recruiting-agenda-item {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  align-items: center;
  border-top: 1px solid #eef2f7;
  background: #fff;
  animation: recruitingAgendaEntra .28s ease-out both;
  animation-delay: var(--retraso, 0ms);
  transition: background .14s ease, opacity .3s ease, transform .3s ease;
}
.recruiting-agenda-item:hover { background: #f8fafc; }
/* Lo que se acaba de dar por hecho: se tacha y se va, para que se vea QUÉ se
   cerró en vez de que la lista cambie de golpe. */
.recruiting-agenda-item.is-hecha { opacity: 0; transform: translateX(14px); }
.recruiting-agenda-item.is-hecha .recruiting-agenda-copy strong { text-decoration: line-through; }
.recruiting-agenda-item.is-hecha .recruiting-agenda-check { color: #fff; border-color: #0f766e; background: #0f766e; }

/* La palomita. Se queda tenue hasta que se pasa por la fila: está siempre ahí,
   pero no compite con el nombre de la persona. */
.recruiting-agenda-check {
  display: grid;
  place-items: center;
  width: 23px;
  height: 23px;
  margin-left: 11px;
  padding: 0;
  border: 1px solid #cbd5e1;
  border-radius: 50%;
  color: #cbd5e1;
  background: #fff;
  font-size: .72rem;
  cursor: pointer;
  transition: color .14s ease, border-color .14s ease, background .14s ease, transform .14s ease;
}
.recruiting-agenda-item:hover .recruiting-agenda-check { color: #94a3b8; border-color: #94a3b8; }
.recruiting-agenda-check:hover { color: #fff !important; border-color: #0f766e !important; background: #0f766e; transform: scale(1.1); }
.recruiting-agenda-check:focus-visible { outline: 2px solid #0f766e; outline-offset: 2px; }
.recruiting-agenda-check:disabled { opacity: .5; cursor: default; }

.recruiting-agenda-abrir {
  width: 100%;
  display: grid;
  grid-template-columns: 62px 34px minmax(0, 1fr) auto auto;
  gap: 11px;
  align-items: center;
  padding: 9px 13px;
  border: 0;
  color: inherit;
  background: none;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.recruiting-agenda-abrir:focus-visible { outline: 2px solid #0f766e; outline-offset: -2px; }
.recruiting-agenda-abrir > time { color: #0f766e; font-size: .78rem; font-weight: 750; font-variant-numeric: tabular-nums; }
.recruiting-agenda-item.is-vencida .recruiting-agenda-abrir > time { color: #b91c1c; }
/* Lo de hoy a lo que ya se le pasó la hora: el día no acabó, pero corre prisa. */
.recruiting-agenda-item.is-pasada .recruiting-agenda-abrir > time { color: #b45309; }
.recruiting-agenda-copy { min-width: 0; display: grid; gap: 1px; }
.recruiting-agenda-copy strong { overflow: hidden; color: #0f172a; font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.recruiting-agenda-copy small { overflow: hidden; color: #64748b; font-size: .71rem; text-overflow: ellipsis; white-space: nowrap; }
.recruiting-agenda-lleva { display: inline-flex; align-items: center; gap: 6px; color: #64748b; font-size: .71rem; white-space: nowrap; }

.recruiting-empty.is-suave { border-style: solid; border-color: #e2e8f0; padding: 26px 22px; background: #f8fafc; }

@keyframes recruitingAgendaEntra {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .recruiting-agenda-item { animation: none; opacity: 1; transform: none; }
  .recruiting-agenda-item.is-hecha { opacity: 0; }
  .recruiting-agenda-tramo:hover,
  .recruiting-agenda-check:hover { transform: none; }
}

.recruiting-toast-host { position: fixed; z-index: 9700; right: 24px; bottom: 24px; display: grid; gap: 8px; pointer-events: none; }
.recruiting-toast {
  width: min(360px, calc(100vw - 32px));
  border: 1px solid #99f6e4;
  border-radius: 10px;
  padding: 11px 13px;
  color: #115e59;
  background: #f0fdfa;
  box-shadow: 0 12px 30px rgba(15,23,42,.14);
  font-size: .78rem;
  pointer-events: auto;
}
.recruiting-toast.is-error { border-color: #fecaca; color: #991b1b; background: #fef2f2; }

/* Los avisos de Reclutamiento usan la esquina superior. */
.recruiting-toast-host[data-recruiting-city] {
  top: calc(24px + env(safe-area-inset-top, 0px));
  right: calc(24px + env(safe-area-inset-right, 0px));
  bottom: auto;
}
.recruiting-toast-host[data-recruiting-city] .recruiting-toast {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) 28px;
  gap: 10px;
  align-items: center;
  border-radius: 14px;
  opacity: 1;
  transform: none;
  transform-origin: top right;
  transition: transform 220ms cubic-bezier(.22, 1, .36, 1), opacity 180ms ease-out;
}
.recruiting-toast-host[data-recruiting-city] .recruiting-toast > span { overflow-wrap: anywhere; }
.recruiting-toast-host[data-recruiting-city] .recruiting-toast[data-toast-state="entering"],
.recruiting-toast-host[data-recruiting-city] .recruiting-toast[data-toast-state="leaving"] {
  opacity: 0;
  transform: translate3d(16px, -6px, 0) scale(.98);
}
.recruiting-toast-host[data-recruiting-city] .recruiting-toast[data-toast-state="leaving"] { transition-duration: 160ms; }
.recruiting-toast-host[data-recruiting-city] .recruiting-toast-close {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  color: inherit;
  background: transparent;
  cursor: pointer;
}
.recruiting-toast-host[data-recruiting-city] .recruiting-toast-close:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
@media (hover: hover) and (pointer: fine) {
  .recruiting-toast-host[data-recruiting-city] .recruiting-toast-close:hover { background: rgba(15, 23, 42, .06); }
}
@media (max-width: 560px) {
  .recruiting-toast-host[data-recruiting-city] {
    top: calc(12px + env(safe-area-inset-top, 0px));
    right: calc(12px + env(safe-area-inset-right, 0px));
  }
  .recruiting-toast-host[data-recruiting-city] .recruiting-toast {
    width: min(360px, calc(100vw - 24px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)));
    grid-template-columns: 18px minmax(0, 1fr) 40px;
  }
  .recruiting-toast-host[data-recruiting-city] .recruiting-toast-close { width: 40px; height: 40px; }
}
@media (prefers-reduced-motion: reduce) {
  .recruiting-toast-host[data-recruiting-city] .recruiting-toast,
  .recruiting-toast-host[data-recruiting-city] .recruiting-toast[data-toast-state] {
    transform: none;
    transition: opacity 100ms ease-out;
  }
}

@media (max-width: 1240px) {
  .recruiting-board { grid-template-columns: repeat(5, minmax(220px, 1fr)); }
}

@media (max-width: 860px) {
  .recruiting-head { align-items: flex-start; flex-direction: column; padding-right: 46px; }
  .recruiting-head-actions { width: 100%; flex-wrap: wrap; }
  .recruiting-toolbar { grid-template-columns: 1fr; }
  .recruiting-scopes { overflow-x: auto; }
  .recruiting-sync-note { text-align: left; }
  .recruiting-form-grid,
  .recruiting-form-grid.is-two,
  .recruiting-validation-grid { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .recruiting-head { padding: 10px 42px 10px 12px; }
  .recruiting-head-copy nav { display: none; }
  .recruiting-title-row p { display: none; }
  .recruiting-head-actions { gap: 6px; }
  .recruiting-secondary-button span { display: none; }
  .recruiting-body { padding: 11px; }
  .recruiting-board { min-width: 0; grid-template-columns: repeat(5, minmax(82vw, 1fr)); overflow: visible; }
  .recruiting-modal-backdrop { padding: 0; align-items: end; }
  .recruiting-modal,
  .recruiting-modal.is-narrow { width: 100%; max-height: 94vh; border-radius: 14px 14px 0 0; }
  .recruiting-agenda-abrir { grid-template-columns: 56px 30px minmax(0, 1fr); gap: 9px; }
  .recruiting-agenda-abrir .recruiting-agenda-lleva,
  .recruiting-agenda-abrir .recruiting-status-pill { grid-column: 3; justify-self: start; }
  /* En un teléfono la palomita se ve siempre: no hay "pasar por encima". */
  .recruiting-agenda-check { color: #94a3b8; border-color: #94a3b8; }
  .recruiting-agenda-tramo { flex-basis: calc(50% - 4px); }
}

/* --- Lo que se agrego al terminar el modulo -------------------------------- */

/* Los estados cerrados, y "Nuevos", tambien con su color en la pildora. */
.recruiting-status-pill.is-new { color: #475569; background: #f1f5f9; }
.recruiting-status-pill.is-hired { color: #0f766e; background: #ccfbf1; }
.recruiting-status-pill.is-discarded { color: #b91c1c; background: #fee2e2; }
.recruiting-status-pill.is-archived { color: #64748b; background: #f1f5f9; }

.recruiting-card-line.is-warning,
.recruiting-card-line.is-warning i { color: #b45309; }

/* En Validaciones la tarjeta ensena cada requisito con su estado. */
.recruiting-checklist { display: grid; gap: 4px; margin: 9px 0 0; padding: 0; list-style: none; }
.recruiting-checklist li { min-width: 0; display: flex; align-items: center; gap: 7px; color: #475569; font-size: .7rem; }
.recruiting-checklist li span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.recruiting-checklist li i { width: 13px; flex: none; text-align: center; font-size: .74rem; }
.recruiting-checklist li.is-done i { color: #16a34a; }
.recruiting-checklist li.is-pending,
.recruiting-checklist li.is-pending i,
.recruiting-checklist li.is-failed,
.recruiting-checklist li.is-failed i { color: #dc2626; }
.recruiting-checklist li.is-moving,
.recruiting-checklist li.is-moving i { color: #b45309; }
.recruiting-checklist li.is-off,
.recruiting-checklist li.is-off i { color: #94a3b8; }
.recruiting-checklist li.is-espera { color: #475569; }
.recruiting-checklist li.is-espera i { color: #3b82f6; }

.recruiting-review-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.recruiting-review-button i { font-size: .8rem; }

.recruiting-scope-count {
  min-width: 20px;
  margin-left: 2px;
  padding: 0 6px;
  border-radius: 999px;
  color: #475569;
  background: #e2e8f0;
  font-size: .64rem;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}
.recruiting-scope.is-active .recruiting-scope-count { color: #0f766e; background: #ccfbf1; }

.recruiting-empty-actions { display: flex; justify-content: center; gap: 8px; margin-top: 12px; }

/* Cerrados: una lista, no un tablero. */
.recruiting-closed { display: grid; gap: 10px; min-height: 0; }
.recruiting-closed-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.recruiting-chip {
  min-height: 30px;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  padding: 4px 11px;
  color: #475569;
  background: #fff;
  font: inherit;
  font-size: .72rem;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  cursor: pointer;
}
.recruiting-chip:hover { border-color: #99f6e4; }
.recruiting-chip.is-active { border-color: #2dd4bf; color: #0f766e; background: #f0fdfa; }
.recruiting-closed-note { margin: 0; color: #64748b; font-size: .72rem; }
.recruiting-closed-list {
  display: grid;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}
.recruiting-closed-row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1.4fr) minmax(0, 1.6fr) auto 92px;
  gap: 12px;
  align-items: center;
  padding: 9px 12px;
  border: 0;
  border-top: 1px solid #eef2f7;
  color: inherit;
  background: #fff;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.recruiting-closed-row:first-child { border-top: 0; }
.recruiting-closed-row:hover { background: #f8fafc; }
.recruiting-closed-row:focus-visible { outline: 2px solid #2dd4bf; outline-offset: -2px; }
.recruiting-closed-main { min-width: 0; display: grid; gap: 1px; }
.recruiting-closed-main strong,
.recruiting-closed-main small,
.recruiting-closed-reason { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.recruiting-closed-main strong { color: #0f172a; font-size: .78rem; }
.recruiting-closed-main small { color: #64748b; font-size: .69rem; }
.recruiting-closed-reason { color: #64748b; font-size: .71rem; }
.recruiting-closed-row time { color: #94a3b8; font-size: .7rem; text-align: right; font-variant-numeric: tabular-nums; }

/* Avisos dentro de la ficha. */
.recruiting-notice {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  border: 1px solid #99f6e4;
  border-radius: 10px;
  padding: 10px 12px;
  color: #0f5f59;
  background: #f0fdfa;
  font-size: .75rem;
}
.recruiting-notice i { margin-top: 1px; }
.recruiting-notice.is-muted { border-color: #e2e8f0; color: #475569; background: #f8fafc; }
.recruiting-notice.is-warning { border-color: #fde68a; color: #92400e; background: #fffbeb; }
.recruiting-origin { display: flex; align-items: center; gap: 7px; margin: 0; color: #64748b; font-size: .72rem; }
.recruiting-derived { margin: 0; min-height: 36px; display: flex; align-items: center; color: #475569; font-size: .75rem; }

/* Lo que llega desde Preingreso, dentro de cada validacion de la ficha. */
/* Dos tarjetas de validacion en la misma fila miden lo mismo; sin esto la mas
   corta repartia el alto sobrante entre sus campos y quedaban huecos. */
.recruiting-validation { align-content: start; }

/* Los candidatos de prueba: la tarjeta punteada, el boton (solo
   administracion) y su ventana. */
.recruiting-candidate.is-test { border-style: dashed; border-color: #a5b4fc; background: #fbfbff; }
.recruiting-tests-button {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-left: 8px;
  padding: 3px 9px;
  border: 1px dashed #a5b4fc;
  border-radius: 999px;
  color: #4338ca;
  background: #f8faff;
  font: inherit;
  font-size: .7rem;
  font-weight: 650;
  cursor: pointer;
}
.recruiting-tests-button:hover { border-style: solid; }
.recruiting-tests-button:focus-visible { outline: 2px solid #6366f1; outline-offset: 2px; }
.recruiting-tests { display: grid; gap: 10px; }
.recruiting-tests p { margin: 0; color: #334155; font-size: .8rem; line-height: 1.5; }
.recruiting-tests ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.recruiting-tests li { display: flex; align-items: center; gap: 8px; color: #475569; font-size: .76rem; }
.recruiting-tests li i { color: #4338ca; }
.recruiting-validation-meta { margin: -2px 0 0; color: #64748b; font-size: .68rem; line-height: 1.4; }
.recruiting-validation-sizes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.recruiting-evidence-list { display: flex; flex-wrap: wrap; gap: 6px; }
.recruiting-evidence {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  padding: 5px 9px;
  border: 1px solid #c7d2fe;
  border-radius: 8px;
  color: #4338ca;
  background: #eef2ff;
  font: inherit;
  font-size: .7rem;
  cursor: pointer;
}
.recruiting-evidence span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* El resumen de la importacion. */
.recruiting-sync-summary { display: grid; gap: 10px; }
.recruiting-sync-summary p { margin: 0; color: #334155; font-size: .78rem; line-height: 1.5; }
.recruiting-sync-summary h5 { margin: 4px 0 0; color: #0f172a; font-size: .74rem; }
.recruiting-sync-summary ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; margin: 0; padding: 0; list-style: none; }
.recruiting-sync-summary li { display: flex; align-items: center; justify-content: space-between; gap: 8px; border: 1px solid #eef2f7; border-radius: 9px; padding: 6px 8px; }
.recruiting-sync-summary li b { color: #0f172a; font-size: .82rem; font-variant-numeric: tabular-nums; }
.recruiting-sync-summary .recruiting-sync-small { color: #64748b; font-size: .72rem; }

@media (max-width: 860px) {
  .recruiting-closed-row { grid-template-columns: 34px minmax(0, 1fr) auto; }
  .recruiting-closed-reason,
  .recruiting-closed-row time { display: none; }
}

/* --- La ficha del candidato --------------------------------------------------
   Encabezado con la persona y la barra de etapas; secciones con su color de
   referencia; a la derecha, el resumen y la actividad. Los colores de estado
   (rojo, ambar, verde) son los mismos de la tarjeta del tablero. */

.recruiting-modal.is-sheet { width: min(1120px, 96vw); max-width: 100%; min-width: 0; max-height: min(92vh, 960px); }
.recruiting-modal.is-sheet.is-compact { width: min(860px, 96vw); }
.recruiting-modal.is-sheet .recruiting-modal-body { padding: 16px 18px 20px; background: #f5f7fa; }
.recruiting-modal.is-sheet .recruiting-form-actions { background: rgba(255, 255, 255, .96); }

/* Encabezado */
.recruiting-modal-head.is-sheet { display: block; padding: 0; background: #fff; }
.recruiting-sheet-id {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 13px;
  padding: 15px 14px 12px 18px;
}
.recruiting-avatar.is-lg { width: 50px; height: 50px; font-size: 1rem; }
.recruiting-avatar.is-new { color: #0f766e; background: #ccfbf1; }
.recruiting-avatar.is-new i { font-size: 1.2rem; }
.recruiting-sheet-id-copy { min-width: 0; }
.recruiting-modal-head.is-sheet h4 { font-size: 1.1rem; line-height: 1.2; }
.recruiting-sheet-id-copy > p { margin: 3px 0 0; overflow: hidden; color: #64748b; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.recruiting-sheet-contact { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.recruiting-sheet-contact a,
.recruiting-sheet-contact span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: 100%;
  min-height: 24px;
  padding: 2px 9px;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  color: #334155;
  background: #f8fafc;
  font-size: .7rem;
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.recruiting-sheet-contact i { color: #64748b; }
.recruiting-sheet-contact a:hover { border-color: #99f6e4; color: #0f766e; background: #f0fdfa; }
.recruiting-sheet-contact a:hover i { color: #0f766e; }
.recruiting-sheet-contact a:focus-visible { outline: 2px solid #14b8a6; outline-offset: 1px; }
.recruiting-sheet-contact .is-test { border-style: dashed; border-color: #a5b4fc; color: #4338ca; background: #f8faff; }
.recruiting-sheet-contact .is-test i { color: #4338ca; }
.recruiting-sheet-id .recruiting-status-pill { align-self: start; margin-top: 4px; }
.recruiting-sheet-id .recruiting-modal-close { align-self: start; }

.recruiting-sheet-eyebrow {
  display: block;
  margin-bottom: 2px;
  color: #94a3b8;
  font-size: .64rem;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* "Revisar ingreso": de donde viene y a donde va. */
.recruiting-handoff {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 18px 11px;
  border-top: 1px solid #eef2f7;
  background: #fbfcfd;
  overflow-x: auto;
  scrollbar-width: none;
}
.recruiting-handoff::-webkit-scrollbar { display: none; }
.recruiting-handoff-step {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: none;
  min-height: 26px;
  padding: 3px 11px;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  color: #94a3b8;
  background: #fff;
  font-size: .71rem;
  font-weight: 650;
  white-space: nowrap;
}
.recruiting-handoff-step.is-done { border-color: #bbf7d0; color: #15803d; background: #f0fdf4; }
.recruiting-handoff-step.is-current { border-color: #99f6e4; color: #0f766e; background: #f0fdfa; font-weight: 750; }
.recruiting-handoff-link { flex: 1 1 auto; min-width: 12px; max-width: 34px; height: 2px; border-radius: 2px; background: #e2e8f0; }

/* La barra de etapas: lo hecho con palomita, la etapa actual con su color. */
.recruiting-stepper-band {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 9px 18px 11px;
  border-top: 1px solid #eef2f7;
  background: #fbfcfd;
}
.recruiting-stepper {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-x: auto;
  scrollbar-width: none;
}
.recruiting-stepper::-webkit-scrollbar { display: none; }
.recruiting-stepper li { flex: 1 1 0; min-width: max-content; display: flex; align-items: center; }
.recruiting-stepper li:first-child { flex: 0 0 auto; }
.recruiting-stepper li + li::before {
  content: "";
  flex: 1 1 auto;
  min-width: 14px;
  height: 2px;
  margin: 0 6px;
  border-radius: 2px;
  background: #e2e8f0;
}
.recruiting-stepper li.is-past::before,
.recruiting-stepper li.is-current::before { background: color-mix(in srgb, var(--step) 45%, #e2e8f0); }
.recruiting-step {
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 4px 11px 4px 5px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: #94a3b8;
  background: transparent;
  font: inherit;
  font-size: .72rem;
  font-weight: 650;
  white-space: nowrap;
  cursor: pointer;
  transition: color .15s ease, background .15s ease, border-color .15s ease;
}
.recruiting-step:hover:not(:disabled) { color: #334155; background: #f1f5f9; }
.recruiting-step:focus-visible { outline: 2px solid var(--step); outline-offset: 2px; }
.recruiting-step:disabled { cursor: default; }
.recruiting-step-dot {
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  border: 2px solid #cbd5e1;
  border-radius: 50%;
  color: #fff;
  background: #fff;
  font-size: .72rem;
}
.recruiting-step-dot i { opacity: 0; line-height: 1; }
.recruiting-stepper li.is-past .recruiting-step { color: #475569; }
.recruiting-stepper li.is-past .recruiting-step-dot { border-color: var(--step); background: var(--step); }
.recruiting-stepper li.is-past .recruiting-step-dot i { opacity: 1; }
.recruiting-stepper li.is-current .recruiting-step {
  border-color: color-mix(in srgb, var(--step) 32%, #fff);
  color: color-mix(in srgb, var(--step) 78%, #0f172a);
  background: color-mix(in srgb, var(--step) 10%, #fff);
  font-weight: 750;
}
.recruiting-stepper li.is-current .recruiting-step-dot { border-color: var(--step); background: var(--step); box-shadow: inset 0 0 0 3px #fff; }
.recruiting-stepper.is-closed li { opacity: .55; }
.recruiting-stepper.is-closed li:hover { opacity: 1; }
.recruiting-stepper-note { flex: none; color: #64748b; font-size: .7rem; }
.recruiting-stepper-note[hidden] { display: none; }

/* Cuerpo: secciones a la izquierda, resumen a la derecha. */
.recruiting-sheet-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 14px; align-items: start; }
.recruiting-sheet-layout.is-single { grid-template-columns: minmax(0, 1fr); }
.recruiting-sheet-main { min-width: 0; display: grid; gap: 12px; }
.recruiting-section {
  --tone-ink: #0f766e;
  --tone-bg: #ccfbf1;
  min-width: 0;
  border: 1px solid #e3e8ef;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .03);
}
.recruiting-section[data-tone="blue"] { --tone-ink: #1d4ed8; --tone-bg: #dbeafe; }
.recruiting-section[data-tone="violet"] { --tone-ink: #6d28d9; --tone-bg: #ede9fe; }
.recruiting-section[data-tone="orange"] { --tone-ink: #c2410c; --tone-bg: #ffedd5; }
.recruiting-section[data-tone="indigo"] { --tone-ink: #4338ca; --tone-bg: #e0e7ff; }
.recruiting-section-head { display: flex; align-items: center; gap: 10px; padding: 11px 14px; border-bottom: 1px solid #eef2f7; }
.recruiting-section-icon {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  border-radius: 9px;
  color: var(--tone-ink);
  background: var(--tone-bg);
  font-size: .95rem;
}
.recruiting-section-title { min-width: 0; }
.recruiting-section-title h5 { margin: 0; color: #0f172a; font-size: .84rem; font-weight: 750; }
.recruiting-section-title p { margin: 1px 0 0; color: #64748b; font-size: .7rem; }
.recruiting-section-count {
  margin-left: auto;
  flex: none;
  padding: 3px 10px;
  border-radius: 999px;
  color: #b45309;
  background: #fef3c7;
  font-size: .68rem;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}
.recruiting-section-count.is-done { color: #15803d; background: #dcfce7; }
.recruiting-section-count.is-none { color: #64748b; background: #f1f5f9; }
.recruiting-section-body { min-width: 0; margin: 0; padding: 13px 14px 14px; border: 0; }
.recruiting-field[hidden] { display: none; }

.recruiting-interview-date { min-width: 0; display: grid; align-content: start; gap: 8px; }
.recruiting-interview-suggestion { display: grid; gap: 9px; padding: 10px; border: 1px solid #c4b5fd; border-radius: 10px; color: #5b21b6; background: #f5f3ff; }
.recruiting-interview-suggestion[hidden] { display: none; }
.recruiting-interview-suggestion p { margin: 0; font-size: .75rem; line-height: 1.5; }
.recruiting-interview-suggestion p i { margin-right: 6px; }
.recruiting-interview-suggestion-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.recruiting-interview-suggestion-actions button { min-height: 34px; padding: 7px 10px; border: 1px solid #6d28d9; border-radius: 8px; color: #fff; background: #6d28d9; font: inherit; font-size: .7rem; font-weight: 700; cursor: pointer; }
.recruiting-interview-suggestion-actions [data-recruiting-interview-stage="dismiss"] { border-color: #ddd6fe; color: #5b21b6; background: #fff; }
.recruiting-interview-suggestion-actions button:focus-visible { outline: 2px solid #6d28d9; outline-offset: 2px; }

/* Las validaciones: la franja de la izquierda y la pildora dicen el estado;
   las que no se piden se quedan en una linea. */
.recruiting-validation-grid { grid-template-columns: minmax(0, 1fr); gap: 8px; }
.recruiting-validation {
  --v-band: #cbd5e1;
  --v-ink: #64748b;
  --v-soft: #f1f5f9;
  position: relative;
  display: grid;
  gap: 10px;
  padding: 11px 12px 12px 15px;
  border: 1px solid #e3e8ef;
  border-radius: 11px;
  overflow: hidden;
  background: #fff;
}
.recruiting-validation::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--v-band); }
.recruiting-validation.is-pending { --v-band: #ef4444; --v-ink: #b91c1c; --v-soft: #fee2e2; }
.recruiting-validation.is-moving { --v-band: #f59e0b; --v-ink: #b45309; --v-soft: #fef3c7; }
.recruiting-validation.is-done { --v-band: #22c55e; --v-ink: #15803d; --v-soft: #dcfce7; }
.recruiting-validation.is-failed { --v-band: #b91c1c; --v-ink: #fff; --v-soft: #dc2626; }
.recruiting-validation.is-off { --v-band: #e2e8f0; --v-ink: #94a3b8; --v-soft: #f1f5f9; background: #fafbfc; }
/* Los uniformes esperan a «Revisar ingreso»: no van tarde, van despues. */
.recruiting-validation.is-espera { --v-band: #93c5fd; --v-ink: #1d4ed8; --v-soft: #eff6ff; }
.recruiting-validation.is-off .recruiting-validation-body { display: none; }
.recruiting-validation-head { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.recruiting-lark-head { grid-template-columns: minmax(0, 1fr) auto; }
.recruiting-lark-head > .recruiting-validation-chip { justify-self: start; }
.recruiting-validation-icon {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  color: var(--v-ink);
  background: var(--v-soft);
}
.recruiting-validation.is-failed .recruiting-validation-icon { color: #b91c1c; background: #fee2e2; }
.recruiting-validation-title { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 3px 7px; }
.recruiting-validation-title strong { color: #0f172a; font-size: .79rem; }
.recruiting-validation.is-off .recruiting-validation-title strong { color: #64748b; }
.recruiting-validation-title small { flex-basis: 100%; color: #64748b; font-size: .66rem; line-height: 1.35; }
.recruiting-validation-chip {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 1px 8px;
  border-radius: 999px;
  color: var(--v-ink);
  background: var(--v-soft);
  font-size: .64rem;
  font-weight: 750;
  white-space: nowrap;
}
.recruiting-validation-body { display: grid; gap: 10px; }
/* Las de Frontline, ya pedidas, se quedan sin nada que ensenar debajo: la
   tarjeta se cierra en su encabezado en vez de dejar un hueco. */
.recruiting-validation-body.is-vacio { display: none; }
.recruiting-validation-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px 12px; }
.recruiting-validation-body .recruiting-field textarea { min-height: 46px; }
.recruiting-validation-sizes { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* El atajo al formato de Frontline: se abre ya lleno con los datos de la ficha.
   Solo se ve mientras esa cola siga pendiente: si no se pidio, su cuerpo entero
   esta escondido; si ya se cerro, no hay nada que pedir. */
.recruiting-validation.is-done .recruiting-ticket,
.recruiting-validation.is-failed .recruiting-ticket { display: none; }
.recruiting-ticket {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 9px 11px;
  border: 1px solid #c7d2fe;
  border-radius: 10px;
  background: #f8faff;
  color: inherit;
  text-decoration: none;
  transition: border-color .15s ease, background .15s ease;
}
.recruiting-ticket:hover { border-color: #818cf8; background: #eef2ff; }
.recruiting-ticket:focus-visible { outline: 2px solid #4f46e5; outline-offset: 2px; }
.recruiting-ticket-icono {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  color: #4338ca;
  background: #e0e7ff;
  font-size: .9rem;
}
.recruiting-ticket-copy { min-width: 0; display: grid; }
.recruiting-ticket-copy b { color: #312e81; font-size: .77rem; font-weight: 700; }
.recruiting-ticket-copy small { color: #6366f1; font-size: .66rem; }
.recruiting-ticket > .bi-box-arrow-up-right { color: #a5b4fc; font-size: .74rem; }

/* Interruptor de "Requerido". */
.recruiting-toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #64748b;
  font-size: .68rem;
  font-weight: 650;
  cursor: pointer;
  user-select: none;
}
.recruiting-toggle input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.recruiting-toggle-track {
  position: relative;
  width: 30px;
  height: 17px;
  flex: none;
  border-radius: 999px;
  background: #cbd5e1;
  transition: background .15s ease;
}
.recruiting-toggle-track::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .25);
  transition: transform .15s ease;
}
.recruiting-toggle input:checked + .recruiting-toggle-track { background: #0f8f86; }
.recruiting-toggle input:checked + .recruiting-toggle-track::after { transform: translateX(13px); }
.recruiting-toggle input:focus-visible + .recruiting-toggle-track { outline: 2px solid #14b8a6; outline-offset: 2px; }
.recruiting-toggle input:checked ~ span:last-child { color: #0f766e; }
.recruiting-toggle input:disabled + .recruiting-toggle-track { opacity: .55; }
.recruiting-toggle:has(input:disabled) { cursor: default; }

/* El buscador de jefes: un campo normal con su lista debajo, que se recorre y
   se filtra al escribir. El navegador pinta su <datalist> a su manera -distinto
   en cada uno, sin correos y sin poder recorrerlo-, asi que la lista es de la
   casa. */
.recruiting-combo-caja { position: relative; display: block; }
.recruiting-combo-caja input { width: 100%; padding-right: 32px; }
.recruiting-combo-flecha {
  position: absolute;
  top: 50%;
  right: 6px;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transform: translateY(-50%);
  border: 0;
  border-radius: 7px;
  color: #94a3b8;
  background: none;
  font-size: .78rem;
  cursor: pointer;
}
.recruiting-combo-flecha:hover { color: #0f766e; background: #f1f5f9; }
.recruiting-combo-lista {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 40;
  max-height: 232px;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 5px;
  border: 1px solid #e2e8f0;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(15, 23, 42, .16);
}
.recruiting-combo-lista[hidden] { display: none; }
.recruiting-combo-opcion {
  width: 100%;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  padding: 6px 8px;
  border: 0;
  border-radius: 8px;
  background: none;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.recruiting-combo-opcion:hover,
.recruiting-combo-opcion.is-activa { background: #f0fdfa; }
.recruiting-combo-opcion .recruiting-avatar { width: 28px; height: 28px; font-size: .64rem; }
.recruiting-combo-copy { min-width: 0; display: grid; }
.recruiting-combo-copy b {
  overflow: hidden;
  color: #0f172a;
  font-size: .78rem;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.recruiting-combo-copy small { overflow: hidden; color: #94a3b8; font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.recruiting-combo-vacio { margin: 0; padding: 9px 10px; color: #94a3b8; font-size: .72rem; }

/* Próxima acción: la misma lista editable en la agenda y en la ficha. */
.recruiting-action-picker { position: relative; display: block; min-width: 0; }
.recruiting-field > .recruiting-action-picker { font-size: .8rem; font-weight: 400; }
.recruiting-action-picker input {
  width: 100%;
  min-height: 44px;
  padding: 10px 38px 10px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  color: #0f172a;
  background: #fff;
  font: inherit;
  font-size: .82rem;
  font-weight: 400;
  cursor: text;
}
.recruiting-action-picker input::placeholder { color: #64748b; opacity: 1; }
.recruiting-action-picker input:focus { border-color: #0d9488; outline: 2px solid rgba(13, 148, 136, .16); outline-offset: 0; }
.recruiting-action-chevron {
  position: absolute;
  top: 50%;
  right: 12px;
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  color: #64748b;
  font-size: .75rem;
  transform: translateY(-50%);
  pointer-events: none;
}
.recruiting-action-picker.is-open .recruiting-action-chevron { color: #0f766e; transform: translateY(-50%) rotate(180deg); }
.recruiting-action-menu {
  position: fixed;
  inset: auto;
  z-index: 9700;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  margin: 0;
  padding: 6px;
  overflow: hidden;
  border: 1px solid #cbded9;
  border-radius: 13px;
  color: #0f172a;
  background: #fff;
  box-shadow: 0 16px 40px rgba(15, 23, 42, .16), 0 3px 10px rgba(15, 23, 42, .06);
  font-family: inherit;
  text-align: left;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 160ms cubic-bezier(.23, 1, .32, 1), transform 160ms cubic-bezier(.23, 1, .32, 1);
}
.recruiting-action-menu[hidden] { display: none; }
.recruiting-action-menu.is-above { transform: translateY(4px); }
.recruiting-action-menu.is-open { opacity: 1; transform: none; }
.recruiting-action-menu.is-instant { transition: none; }
.recruiting-action-menu-title { flex: none; padding: 7px 10px 9px; color: #526960; font-size: .65rem; line-height: 1.3; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.recruiting-action-options { display: grid; gap: 2px; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #c6d8d3 transparent; }
.recruiting-action-menu .recruiting-action-option {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 44px;
  width: 100%;
  padding: 10px;
  border: 0;
  border-radius: 8px;
  color: #233b46;
  background: #fff;
  font: inherit;
  font-size: .81rem;
  font-weight: 550;
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
}
.recruiting-action-option i { flex: none; color: #0f766e; font-size: 1rem; visibility: hidden; }
.recruiting-action-menu .recruiting-action-option.is-selected { color: #0f766e; background: #eefaf6; font-weight: 650; }
.recruiting-action-option.is-selected i { visibility: visible; }
.recruiting-action-menu .recruiting-action-option.is-active { color: #065f46; background: #dff6ee; }
.recruiting-action-menu-hint { flex: none; display: flex; align-items: center; gap: 7px; margin-top: 6px; padding: 9px 10px 5px; border-top: 1px solid #e4edea; color: #64748b; font-size: .67rem; font-weight: 400; line-height: 1.4; }
.recruiting-action-empty { padding: 14px 10px; color: #475569; font-size: .78rem; line-height: 1.5; font-weight: 400; }
@media (hover: hover) and (pointer: fine) {
  .recruiting-action-menu .recruiting-action-option:hover { color: #065f46; background: #e8f7f1; }
}
@media (prefers-reduced-motion: reduce) {
  .recruiting-action-menu,
  .recruiting-action-menu.is-above { transition: none; transform: none; }
}

/* CV y documentos: dos zonas donde se sueltan archivos y lo ya guardado. */
.recruiting-docs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; }
.recruiting-docs-col { min-width: 0; display: grid; align-content: start; gap: 8px; }
.recruiting-docs-col h6 {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  color: #64748b;
  font-size: .66rem;
  font-weight: 750;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.recruiting-docs-col h6 span {
  padding: 1px 7px;
  border-radius: 999px;
  color: #4338ca;
  background: #e0e7ff;
  font-size: .62rem;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
}
.recruiting-doc-list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.recruiting-doc {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 4px;
  border: 1px solid #e3e8ef;
  border-radius: 10px;
  background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.recruiting-doc:hover { border-color: #c7d2fe; box-shadow: 0 1px 3px rgba(15, 23, 42, .06); }
.recruiting-doc-open {
  min-width: 0;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  padding: 8px 4px 8px 9px;
  border: 0;
  background: none;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.recruiting-doc-icon {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  color: #4338ca;
  background: #eef2ff;
  font-size: .9rem;
}
.recruiting-doc-copy { min-width: 0; display: grid; }
.recruiting-doc-copy strong {
  overflow: hidden;
  color: #0f172a;
  font-size: .76rem;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.recruiting-doc-copy small { overflow: hidden; color: #94a3b8; font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.recruiting-doc-open > .bi-box-arrow-up-right { color: #cbd5e1; font-size: .72rem; }
.recruiting-doc-open:hover > .bi-box-arrow-up-right { color: #4338ca; }
.recruiting-doc-open:focus-visible,
.recruiting-doc-remove:focus-visible { outline: 2px solid #4f46e5; outline-offset: -2px; border-radius: 10px; }
.recruiting-doc-remove {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 5px;
  border: 0;
  border-radius: 8px;
  color: #cbd5e1;
  background: none;
  font-size: .78rem;
  cursor: pointer;
  transition: color .15s ease, background .15s ease;
}
.recruiting-doc-remove:hover { color: #b91c1c; background: #fee2e2; }
.recruiting-drop {
  position: relative;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 12px 13px;
  border: 1px dashed #cbd5e1;
  border-radius: 11px;
  background: #fafbff;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease;
}
.recruiting-drop:hover { border-color: #a5b4fc; background: #f5f6ff; }
.recruiting-drop:focus-within { border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99, 102, 241, .16); }
.recruiting-drop.is-over { border-color: #4f46e5; border-style: solid; background: #eef2ff; }
.recruiting-drop.is-busy { opacity: .6; cursor: progress; }
.recruiting-drop-icon {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  color: #4338ca;
  background: #e0e7ff;
  font-size: 1rem;
}
.recruiting-drop-copy { min-width: 0; display: grid; gap: 2px; }
.recruiting-drop-copy strong { color: #334155; font-size: .76rem; font-weight: 700; }
.recruiting-drop-copy small { color: #94a3b8; font-size: .65rem; line-height: 1.35; }
.recruiting-doc-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #4338ca;
  font-size: .71rem;
  text-decoration: none;
}
.recruiting-doc-link:hover { text-decoration: underline; }
.recruiting-docs-note { display: flex; align-items: center; gap: 7px; margin: 0; color: #94a3b8; font-size: .71rem; }
.recruiting-docs-error { grid-column: 1 / -1; margin: 0; color: #b91c1c; font-size: .71rem; }
.recruiting-docs-error:empty { display: none; }
@media (max-width: 720px) {
  .recruiting-docs { grid-template-columns: minmax(0, 1fr); }
}

/* El traspaso a Expedientes: la capa que lleva a la persona de un sistema al
   otro mientras por detras se cambia de pantalla. Va por encima de todo menos
   de los avisos (9700). */
.recruiting-traspaso {
  position: fixed;
  inset: 0;
  z-index: 9680;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(15, 23, 42, .5);
  backdrop-filter: blur(3px);
  opacity: 0;
  transition: opacity .2s ease;
}
.recruiting-traspaso.is-open { opacity: 1; }
.recruiting-traspaso.is-saliendo { opacity: 0; }
.recruiting-traspaso-card {
  width: min(420px, 100%);
  display: grid;
  justify-items: center;
  gap: 6px;
  padding: 26px 24px 22px;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 28px 70px rgba(15, 23, 42, .3);
  text-align: center;
  transform: translateY(12px) scale(.97);
  transition: transform .24s cubic-bezier(.22, 1, .36, 1);
}
.recruiting-traspaso.is-open .recruiting-traspaso-card { transform: none; }
.recruiting-traspaso.is-saliendo .recruiting-traspaso-card { transform: translateY(-6px) scale(.99); }
.recruiting-traspaso-rail { width: 100%; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; margin-bottom: 12px; }
.recruiting-traspaso-end {
  display: grid;
  justify-items: center;
  gap: 5px;
  width: 78px;
  color: #94a3b8;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.recruiting-traspaso-end i {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  color: #64748b;
  background: #f1f5f9;
  font-size: 1rem;
  transition: color .25s ease, background .25s ease, transform .25s ease;
}
.recruiting-traspaso-end.is-from i { color: #0f766e; background: #ccfbf1; }
.recruiting-traspaso.is-viajando .recruiting-traspaso-end.is-from i { color: #94a3b8; background: #f1f5f9; }
.recruiting-traspaso.is-listo .recruiting-traspaso-end.is-to i { color: #15803d; background: #dcfce7; transform: scale(1.08); }
.recruiting-traspaso-track {
  position: relative;
  height: 38px;
  display: flex;
  align-items: center;
  /* El viaje del avatar se mide contra el ancho de la via, que depende de la
     pantalla: por eso la via es su propio contenedor y el recorrido va en cqw. */
  container-type: inline-size;
}
.recruiting-traspaso-track::before {
  content: "";
  position: absolute;
  inset: 50% 0 auto;
  height: 2px;
  border-radius: 2px;
  background: repeating-linear-gradient(90deg, #cbd5e1 0 6px, transparent 6px 12px);
}
.recruiting-traspaso-track::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 0;
  width: 0;
  height: 2px;
  border-radius: 2px;
  background: #14b8a6;
  transition: width .85s cubic-bezier(.65, 0, .35, 1);
}
.recruiting-traspaso.is-viajando .recruiting-traspaso-track::after { width: 100%; }
.recruiting-traspaso-avatar {
  position: relative;
  /* Por encima de la via: sin esto, la linea le cruzaba las iniciales. */
  z-index: 1;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--avatar-ink, #0f766e);
  background: var(--avatar-bg, #ccfbf1);
  box-shadow: 0 0 0 3px #fff, 0 4px 10px rgba(15, 23, 42, .18);
  font-size: .72rem;
  font-weight: 750;
  transform: translateX(0);
  transition: transform .85s cubic-bezier(.65, 0, .35, 1);
}
.recruiting-traspaso.is-viajando .recruiting-traspaso-avatar { transform: translateX(calc(100cqw - 34px)); }
.recruiting-traspaso-card h3 { margin: 0; color: #0f172a; font-size: 1.02rem; text-wrap: balance; }
.recruiting-traspaso-card p { max-width: 34ch; margin: 0; color: #64748b; font-size: .82rem; line-height: 1.5; text-wrap: pretty; }
@media (prefers-reduced-motion: reduce) {
  .recruiting-traspaso,
  .recruiting-traspaso-card,
  .recruiting-traspaso-avatar,
  .recruiting-traspaso-track::after { transition: none; }
}

/* Lo que se solto en un lead nuevo: todavia no esta guardado, y se ve. */
.recruiting-doc.is-pendiente { border-style: dashed; background: #fafbff; }
.recruiting-doc.is-pendiente .recruiting-doc-open { cursor: default; }
.recruiting-doc.is-pendiente .recruiting-doc-icono { color: #64748b; background: #f1f5f9; }

/* Resumen y actividad. */
.recruiting-sheet-aside { position: sticky; top: 0; min-width: 0; display: grid; gap: 12px; }
.recruiting-aside-card { min-width: 0; padding: 13px 14px 14px; border: 1px solid #e3e8ef; border-radius: 12px; background: #fff; }
.recruiting-aside-card h6 { margin: 0 0 11px; color: #64748b; font-size: .66rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.recruiting-aside-card.is-note { border-color: #dbeafe; background: #f8fbff; }
.recruiting-aside-list { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.recruiting-aside-list li { display: grid; grid-template-columns: 16px minmax(0, 1fr); gap: 8px; color: #475569; font-size: .73rem; line-height: 1.4; }
.recruiting-aside-list i { color: #1d4ed8; font-size: .78rem; }
.recruiting-summary { display: grid; gap: 12px; }
.recruiting-summary-row { display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: start; gap: 10px; }
/* Cambio de plaza: revisar el jefe directo (24-sep). */
.recruiting-jefe-aviso { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px; margin-top: 6px; padding: 7px 10px; border: 1px solid #fcd34d; border-radius: 8px; background: #fffbeb; color: #92400e; font-size: .74rem; line-height: 1.35; }
.recruiting-jefe-aviso > span { flex: 1 1 180px; }
.recruiting-jefe-aviso button { border: 1px solid #d97706; border-radius: 999px; background: #fff; color: #92400e; font: inherit; font-weight: 700; padding: 3px 10px; cursor: pointer; }
.recruiting-jefe-aviso button:hover { background: #fef3c7; }
[data-recruiting-sin-plaza],
[data-recruiting-plaza-llena] { align-items: center; }
[data-recruiting-sin-plaza] > span,
[data-recruiting-plaza-llena] > span { flex: 1 1 auto; }
/* Los avisos de la plaza viven en su caja (se ponen al dia en vivo), pero en
   la rejilla cuentan como si no hubiera caja: vacia no deja hueco. */
.recruiting-avisos-plaza { display: contents; }
.recruiting-avisos-plaza > .is-recien { animation: recruiting-uniformes-llama 1.4s ease-out both; }
/* El dato que otra persona cambio mientras se revisaba el ingreso. */
.recruiting-field.is-recien input,
.recruiting-field.is-recien select,
.recruiting-field.is-recien textarea,
.recruiting-field.is-recien .flowmo-select-trigger { border-color: #f59e0b; background: #fffbeb; }
@media (prefers-reduced-motion: reduce) {
  .recruiting-avisos-plaza > .is-recien { animation: none; }
}
/* Dar por hecha la proxima accion o la entrevista desde el resumen (24-sep). */
.recruiting-summary-row.con-accion { grid-template-columns: 28px minmax(0, 1fr) auto; }
.recruiting-resumen-hecho {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  align-self: center;
  padding: 4px 10px 4px 8px;
  border: 1px solid #99f6e4;
  border-radius: 999px;
  color: #0f766e;
  background: #f0fdfa;
  font: inherit;
  font-size: .7rem;
  font-weight: 750;
  white-space: nowrap;
  cursor: pointer;
  transition: color .14s ease, background .14s ease, border-color .14s ease;
}
.recruiting-resumen-hecho:hover { color: #fff; border-color: #0f766e; background: #0f766e; }
.recruiting-resumen-hecho:focus-visible { outline: 2px solid #0f766e; outline-offset: 2px; }
.recruiting-resumen-hecho:disabled { opacity: .5; cursor: default; }
.recruiting-resumen-atendida { display: inline-flex; align-items: center; gap: 4px; align-self: center; color: #15803d; font-size: .7rem; font-weight: 700; white-space: nowrap; }
.recruiting-summary-icon {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  color: #64748b;
  background: #f1f5f9;
  font-size: .82rem;
}
.recruiting-summary-label { display: block; color: #64748b; font-size: .66rem; font-weight: 700; }
.recruiting-summary-value { display: grid; justify-items: start; gap: 5px; margin-top: 2px; color: #0f172a; font-size: .77rem; line-height: 1.35; }
.recruiting-summary-value strong { font-weight: 700; }
.recruiting-summary-value small { color: #64748b; font-size: .68rem; }
.recruiting-summary-value .is-empty { color: #94a3b8; }
.recruiting-summary-foot { margin: 12px 0 0; padding-top: 10px; border-top: 1px solid #eef2f7; color: #94a3b8; font-size: .67rem; }
.recruiting-due {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 22px;
  padding: 2px 9px;
  border-radius: 999px;
  color: #475569;
  background: #f1f5f9;
  font-size: .68rem;
  font-weight: 700;
}
.recruiting-due.is-overdue { color: #b91c1c; background: #fee2e2; }
.recruiting-due.is-today { color: #b45309; background: #fef3c7; }
.recruiting-due.is-soon { color: #1d4ed8; background: #dbeafe; }
.recruiting-due.is-empty { color: #94a3b8; background: #f8fafc; font-weight: 600; }
.recruiting-meter { width: 100%; max-width: 190px; height: 6px; display: flex; gap: 3px; }
.recruiting-meter span { flex: 1; border-radius: 3px; background: #e2e8f0; }
.recruiting-meter .is-done { background: #22c55e; }
.recruiting-meter .is-moving { background: #f59e0b; }
.recruiting-meter .is-pending { background: #ef4444; }
.recruiting-meter .is-failed { background: #b91c1c; }

.recruiting-timeline { position: relative; display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.recruiting-timeline::before { content: ""; position: absolute; top: 7px; bottom: 7px; left: 4px; width: 2px; border-radius: 2px; background: #eef2f7; }
.recruiting-timeline li { position: relative; display: grid; grid-template-columns: 10px minmax(0, 1fr); align-items: start; gap: 10px; }
.recruiting-timeline-dot { width: 10px; height: 10px; margin-top: 3px; border-radius: 50%; background: var(--dot, #94a3b8); box-shadow: 0 0 0 3px #fff; }
.recruiting-timeline li.is-origin { --dot: #14b8a6; }
.recruiting-timeline li.is-stage { --dot: #8b5cf6; }
.recruiting-timeline li.is-check { --dot: #f97316; }
.recruiting-timeline li.is-done { --dot: #22a447; }
.recruiting-timeline-copy { min-width: 0; }
.recruiting-timeline-copy strong { display: block; color: #1e293b; font-size: .73rem; font-weight: 650; line-height: 1.35; }
.recruiting-timeline-copy small { display: block; margin-top: 1px; color: #94a3b8; font-size: .66rem; }
.recruiting-timeline-empty { margin: 10px 0 0; color: #94a3b8; font-size: .7rem; }
.recruiting-aside-card > .recruiting-timeline-empty:first-of-type { margin-top: 0; }

@media (max-width: 1000px) {
  .recruiting-modal.is-sheet { width: min(780px, 96vw); }
  .recruiting-sheet-layout { grid-template-columns: minmax(0, 1fr); }
  .recruiting-sheet-aside { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
}

@media (max-width: 860px) {
  .recruiting-sheet-aside { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 560px) {
  .recruiting-sheet-id { grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; padding: 12px 8px 10px 14px; }
  .recruiting-avatar.is-lg { width: 40px; height: 40px; font-size: .86rem; }
  .recruiting-sheet-id .recruiting-status-pill { display: none; }
  .recruiting-stepper-band { padding: 8px 10px 10px; }
  .recruiting-stepper li:not(.is-current) .recruiting-step-label { display: none; }
  .recruiting-step { padding-right: 6px; }
  .recruiting-stepper li.is-current .recruiting-step { padding-right: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  .recruiting-step,
  .recruiting-toggle-track,
  .recruiting-toggle-track::after { transition: none; }
}

/* --- "Asignado a" y los responsables ------------------------------------------ */

/* En el encabezado de la ficha: la persona, quien la lleva y cerrar. La etapa
   cerrada ya no va aqui: la dice la barra de etapas. */
.recruiting-sheet-id { grid-template-columns: auto minmax(0, 1fr) auto auto; }
.recruiting-assign { width: 250px; display: grid; gap: 4px; align-self: start; margin-top: 2px; }
.recruiting-assign-label {
  display: flex;
  align-items: baseline;
  gap: 5px;
  color: #64748b;
  font-size: .63rem;
  font-weight: 750;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.recruiting-assign-label em { color: #0f8f86; font-style: normal; font-weight: 650; letter-spacing: 0; text-transform: none; }
.recruiting-assign-label em[hidden] { display: none; }
.recruiting-assign-control { position: relative; display: flex; align-items: center; }
.recruiting-assign-control i { position: absolute; left: 11px; color: #0f766e; pointer-events: none; }
.recruiting-assign select {
  width: 100%;
  min-height: 36px;
  padding: 6px 28px 6px 33px;
  border: 1px solid #99f6e4;
  border-radius: 9px;
  color: #0f172a;
  background-color: #f0fdfa;
  font: inherit;
  font-size: .79rem;
  font-weight: 650;
  text-overflow: ellipsis;
  cursor: pointer;
}
.recruiting-assign select:focus-visible { outline: 2px solid #14b8a6; outline-offset: 1px; }
.recruiting-assign select:disabled { cursor: default; opacity: .75; }
.recruiting-assign.is-empty select { border-color: #cbd5e1; color: #64748b; background-color: #fff; font-weight: 500; }
.recruiting-assign.is-empty .recruiting-assign-control i { color: #94a3b8; }
.recruiting-stepper-note { display: inline-flex; align-items: center; gap: 8px; }
.recruiting-stepper-note .recruiting-status-pill { min-height: 22px; }

.recruiting-timeline li.is-assign { --dot: #3b82f6; }

/* La ventana de responsables. */
.recruiting-team { display: grid; gap: 15px; }
.recruiting-team-intro { margin: 0; color: #475569; font-size: .78rem; line-height: 1.5; }
.recruiting-team-group { display: grid; gap: 8px; }
.recruiting-team-group[hidden] { display: none; }
.recruiting-team-group h5 { margin: 0; display: flex; align-items: center; gap: 7px; color: #0f172a; font-size: .76rem; font-weight: 750; }
.recruiting-team-group h5 span {
  min-width: 22px;
  padding: 1px 7px;
  border-radius: 999px;
  color: #0f766e;
  background: #ccfbf1;
  font-size: .66rem;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.recruiting-team-group > p { margin: -3px 0 0; color: #64748b; font-size: .7rem; line-height: 1.45; }
.recruiting-team-search input { min-height: 38px; font-size: .8rem; }
.recruiting-team-list {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid #e2e8f0;
  border-radius: 11px;
  overflow: hidden;
  background: #fff;
}
.recruiting-team-group.is-muted .recruiting-team-list { background: #f8fafc; }
.recruiting-team-row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-top: 1px solid #eef2f7;
}
.recruiting-team-row:first-child { border-top: 0; }
.recruiting-team-copy { min-width: 0; display: grid; gap: 1px; }
.recruiting-team-copy strong,
.recruiting-team-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.recruiting-team-copy strong { color: #0f172a; font-size: .77rem; }
.recruiting-team-copy small { color: #64748b; font-size: .68rem; }
.recruiting-team-tag { padding: 2px 8px; border-radius: 999px; color: #92400e; background: #fef3c7; font-size: .63rem; font-weight: 700; white-space: nowrap; }
.recruiting-team-action {
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border: 1px solid #99f6e4;
  border-radius: 8px;
  color: #0f766e;
  background: #f0fdfa;
  font: inherit;
  font-size: .7rem;
  font-weight: 700;
  cursor: pointer;
}
.recruiting-team-action:hover { background: #ccfbf1; }
.recruiting-team-action:focus-visible { outline: 2px solid #14b8a6; outline-offset: 1px; }
.recruiting-team-action.is-remove { width: 30px; padding: 0; justify-content: center; border-color: #e2e8f0; color: #64748b; background: #fff; }
.recruiting-team-action.is-remove:hover { border-color: #fecaca; color: #b91c1c; background: #fef2f2; }
.recruiting-team-empty { padding: 11px 12px; color: #94a3b8; font-size: .72rem; text-align: center; }
.recruiting-team-row + .recruiting-team-empty { border-top: 1px solid #eef2f7; }
.recruiting-team-foot { margin: 0; color: #94a3b8; font-size: .68rem; }

@media (max-width: 1000px) {
  .recruiting-sheet-id { grid-template-columns: auto minmax(0, 1fr) auto; }
  .recruiting-assign { grid-column: 2 / 3; grid-row: 2; width: min(100%, 320px); margin-top: 0; }
}

@media (max-width: 560px) {
  .recruiting-assign { grid-column: 1 / -1; width: 100%; }
  .recruiting-team-row { grid-template-columns: 30px minmax(0, 1fr) auto; }
  .recruiting-team-tag { display: none; }
}

/* La solicitud de uniformes en «Revisar ingreso» ---------------------------
   Arriba a la derecha, porque es lo que falta para poder crear el expediente.
   Tres caras: pendiente (ambar, con su boton), enviada (verde, con quien y
   cuando) y no marcada en el proceso (gris, se puede mandar igual). */
.recruiting-uniformes {
  --u-ink: #b45309;
  --u-soft: #fef3c7;
  --u-line: #fde68a;
  position: relative;
  display: grid;
  gap: 12px;
  border-color: var(--u-line);
  background: linear-gradient(180deg, #fffdf6 0%, #fff 70%);
  overflow: hidden;
}
.recruiting-uniformes.is-enviada { --u-ink: #15803d; --u-soft: #dcfce7; --u-line: #bbf7d0; background: linear-gradient(180deg, #f6fef9 0%, #fff 70%); }
.recruiting-uniformes.is-opcional { --u-ink: #64748b; --u-soft: #f1f5f9; --u-line: #e3e8ef; background: #fff; }
.recruiting-uniformes-cabeza { display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: center; gap: 10px; }
.recruiting-uniformes-cabeza h6 { margin: 0 0 3px; }
.recruiting-uniformes-icono {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 11px;
  color: var(--u-ink);
  background: var(--u-soft);
  font-size: 1rem;
}
.recruiting-uniformes-estado {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--u-ink);
  font-size: .8rem;
  font-weight: 750;
}
.recruiting-uniformes.is-opcional .recruiting-uniformes-estado { font-size: .74rem; font-weight: 600; }

/* Las tres tallas, como tres casillas: se leen de un vistazo. */
.recruiting-uniformes-tallas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 0; }
.recruiting-uniformes-tallas div {
  display: grid;
  gap: 1px;
  padding: 7px 8px;
  border: 1px solid #eef2f7;
  border-radius: 9px;
  background: #fff;
  text-align: center;
}
.recruiting-uniformes-tallas dt { color: #94a3b8; font-size: .6rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.recruiting-uniformes-tallas dd { margin: 0; color: #0f172a; font-size: .9rem; font-weight: 750; font-variant-numeric: tabular-nums; }
.recruiting-uniformes-tallas dd.is-vacia { color: #cbd5e1; }

.recruiting-uniformes-notas {
  display: grid;
  grid-template-columns: 14px minmax(0, 1fr);
  gap: 7px;
  margin: 0;
  padding: 8px 10px;
  border-radius: 9px;
  color: #475569;
  background: #f8fafc;
  font-size: .72rem;
  line-height: 1.45;
}
.recruiting-uniformes-notas i { color: #94a3b8; }
.recruiting-uniformes-pie { margin: 0; color: #64748b; font-size: .69rem; }
.recruiting-uniformes-error {
  margin: 0;
  padding: 7px 9px;
  border-radius: 8px;
  color: #b91c1c;
  background: #fef2f2;
  font-size: .71rem;
  font-weight: 600;
}
.recruiting-uniformes-error[hidden] { display: none; }

.recruiting-uniformes-enviar {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid #0f8f86;
  border-radius: 10px;
  padding: 8px 14px;
  color: #fff;
  background: #0f8f86;
  font: inherit;
  font-size: .8rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 6px 16px -8px rgba(15, 143, 134, .8);
  transition: background .15s ease, transform .15s ease, box-shadow .15s ease;
}
.recruiting-uniformes-enviar:hover:not(:disabled) { background: #0f766e; transform: translateY(-1px); box-shadow: 0 10px 20px -10px rgba(15, 118, 110, .9); }
.recruiting-uniformes-enviar:focus-visible { outline: 2px solid #0f8f86; outline-offset: 2px; }
.recruiting-uniformes-enviar:disabled { cursor: default; opacity: .75; }
.recruiting-uniformes-enviar.is-enviando i { animation: recruiting-uniformes-vuela 1s ease-in-out infinite; }
.recruiting-uniformes.is-opcional .recruiting-uniformes-enviar { color: #0f766e; background: #fff; box-shadow: none; }
.recruiting-uniformes.is-opcional .recruiting-uniformes-enviar:hover:not(:disabled) { color: #fff; background: #0f8f86; }

/* Recien enviada: el icono entra con un pequeno salto y la tarjeta se
   ilumina un momento. Es la unica celebracion: se nota, no estorba. */
.recruiting-uniformes.is-recien { animation: recruiting-uniformes-brilla 1.1s ease-out both; }
.recruiting-uniformes.is-recien .recruiting-uniformes-icono { animation: recruiting-uniformes-salta .5s cubic-bezier(.2, 1.4, .4, 1) both; }
@keyframes recruiting-uniformes-brilla {
  0% { box-shadow: 0 0 0 0 rgba(34, 197, 94, .45); }
  100% { box-shadow: 0 0 0 14px rgba(34, 197, 94, 0); }
}
@keyframes recruiting-uniformes-salta {
  0% { transform: scale(.6) rotate(-12deg); }
  100% { transform: none; }
}
@keyframes recruiting-uniformes-vuela {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(3px) translateY(-2px); }
}

/* El centro de trabajo y la fecha que se van a mandar: los del formulario de
   la izquierda, en vivo. Lo que falta se ve en rojo aqui tambien. */
/* Un renglon cada uno, a lo ancho de la tarjeta: en la columna de la derecha
   dos casillas lado a lado cortaban "CEDIS PANTACO" y partian sus etiquetas. */
.recruiting-uniformes-datos {
  display: grid;
  border: 1px solid #eef2f7;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}
.recruiting-uniformes-datos > span {
  min-width: 0;
  display: grid;
  grid-template-columns: 16px auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: 8px 11px;
}
.recruiting-uniformes-datos > span + span { border-top: 1px solid #f1f5f9; }
.recruiting-uniformes-datos i { color: var(--u-ink); font-size: .82rem; }
.recruiting-uniformes-datos small { color: #64748b; font-size: .7rem; font-weight: 600; white-space: nowrap; }
.recruiting-uniformes-datos b {
  min-width: 0;
  overflow: hidden;
  color: #0f172a;
  font-size: .76rem;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.recruiting-uniformes-datos > span.is-vacio { background: #fff7f7; }
.recruiting-uniformes-datos > span.is-vacio i,
.recruiting-uniformes-datos > span.is-vacio b { color: #dc2626; }

/* Enviada, y luego alguien cambio el centro o la fecha a la izquierda: el
   grupo tiene lo de antes, y se dice. */
.recruiting-uniformes-cambio {
  margin: 0;
  padding: 8px 10px;
  border: 1px solid #fde68a;
  border-radius: 9px;
  color: #92400e;
  background: #fffbeb;
  font-size: .7rem;
  line-height: 1.45;
}
.recruiting-uniformes-cambio[hidden] { display: none; }

/* Al darle a «Crear» sin la solicitud, la tarjeta se ilumina para que se vea
   donde esta lo que falta. */
.recruiting-uniformes.is-llamando { animation: recruiting-uniformes-llama 1.4s ease-out both; }
@keyframes recruiting-uniformes-llama {
  0%, 60% { box-shadow: 0 0 0 0 rgba(245, 158, 11, .55); }
  30% { box-shadow: 0 0 0 6px rgba(245, 158, 11, .35); }
  100% { box-shadow: 0 0 0 16px rgba(245, 158, 11, 0); }
}

/* «Crear» mientras falta la solicitud: se ve apagado, con candado, pero NO
   esta `disabled` -asi recibe el raton y el clic- y un globo dice por que. */
.recruiting-crear { position: relative; display: inline-flex; }
.recruiting-primary-button.is-bloqueado,
.recruiting-primary-button.is-bloqueado:hover {
  border-color: #99d5cf;
  color: #f0fdfa;
  background: #7fc4bd;
  box-shadow: none;
  cursor: not-allowed;
}
.recruiting-crear.is-explicando .recruiting-primary-button.is-bloqueado { animation: recruiting-crear-niega .38s ease-in-out both; }
@keyframes recruiting-crear-niega {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-5px); }
  40% { transform: translateX(5px); }
  60% { transform: translateX(-3px); }
  80% { transform: translateX(3px); }
}
.recruiting-crear-tip {
  position: absolute;
  right: 0;
  bottom: calc(100% + 12px);
  z-index: 5;
  width: max-content;
  max-width: min(300px, 80vw);
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 10px 13px 10px 10px;
  border-radius: 12px;
  color: #f8fafc;
  background: #0f172a;
  box-shadow: 0 14px 34px -10px rgba(15, 23, 42, .55);
  font-size: .76rem;
  line-height: 1.35;
  text-align: left;
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
  pointer-events: none;
}
.recruiting-crear-tip[hidden] { display: none; }
/* La colita apunta al boton. */
.recruiting-crear-tip::after {
  content: "";
  position: absolute;
  right: 26px;
  top: 100%;
  border: 7px solid transparent;
  border-top-color: #0f172a;
}
.recruiting-crear-tip-icono {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  color: #fbbf24;
  background: rgba(251, 191, 36, .16);
}
.recruiting-crear-tip b { display: block; color: #fff; font-weight: 700; }
.recruiting-crear-tip small { display: block; margin-top: 1px; color: #cbd5e1; font-size: .7rem; }
/* Lo que falta, uno por renglon, cada cosa con su icono. */
.recruiting-crear-tip { align-items: start; }
.recruiting-crear-tip-lista { display: grid; gap: 4px; margin: 6px 0 5px; }
.recruiting-crear-tip-lista > span {
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  color: #e2e8f0;
  font-size: .74rem;
}
.recruiting-crear-tip-lista i { color: #fbbf24; font-size: .8rem; }
.recruiting-crear:hover .recruiting-crear-tip,
.recruiting-crear:focus-within .recruiting-crear-tip,
.recruiting-crear.is-explicando .recruiting-crear-tip {
  opacity: 1;
  visibility: visible;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .recruiting-uniformes.is-recien,
  .recruiting-uniformes.is-recien .recruiting-uniformes-icono,
  .recruiting-uniformes-enviar.is-enviando i,
  .recruiting-uniformes.is-llamando,
  .recruiting-crear.is-explicando .recruiting-primary-button.is-bloqueado { animation: none; }
  .recruiting-crear-tip { transition: none; }
}

/* Sistemas · Frontline en «Revisar ingreso» ---------------------------------
   Usuario de sistema y equipo de computo, si se piden: cada uno con su check,
   y lo que falta con su enlace al formato de Frontline ya lleno. Ambar
   mientras falta algo, verde cuando esta todo pedido. */
.recruiting-frontline {
  --f-ink: #b45309;
  --f-soft: #fef3c7;
  --f-line: #fde68a;
  display: grid;
  gap: 12px;
  border-color: var(--f-line);
  background: linear-gradient(180deg, #fffdf6 0%, #fff 70%);
}
.recruiting-frontline.is-lista { --f-ink: #15803d; --f-soft: #dcfce7; --f-line: #bbf7d0; background: linear-gradient(180deg, #f6fef9 0%, #fff 70%); }
.recruiting-frontline-cabeza { display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: center; gap: 10px; }
.recruiting-frontline-cabeza h6 { margin: 0 0 3px; }
.recruiting-frontline-icono {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 11px;
  color: var(--f-ink);
  background: var(--f-soft);
  font-size: 1rem;
}
.recruiting-frontline-estado { display: inline-flex; align-items: center; gap: 5px; color: var(--f-ink); font-size: .8rem; font-weight: 750; }

.recruiting-frontline-lista { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.recruiting-frontline-lista li {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 8px 9px;
  border: 1px solid #eef2f7;
  border-radius: 10px;
  background: #fff;
}
.recruiting-frontline-check {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #b45309;
  background: #fef3c7;
  font-size: .85rem;
}
.recruiting-frontline-lista li.is-hecho .recruiting-frontline-check { color: #fff; background: #22c55e; font-size: .95rem; }
.recruiting-frontline-copia { min-width: 0; display: grid; gap: 1px; }
.recruiting-frontline-copia b { color: #0f172a; font-size: .76rem; font-weight: 700; }
.recruiting-frontline-copia small { overflow: hidden; color: #64748b; font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.recruiting-frontline-lista li.is-falta .recruiting-frontline-copia small { color: #b45309; font-weight: 600; }

/* Pedirlo: abre el formato en otra pestana, por eso la flechita de "fuera". */
.recruiting-frontline-pedir {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 11px;
  border: 1px solid #0f8f86;
  border-radius: 999px;
  color: #0f766e;
  background: #fff;
  font-size: .72rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition: background .15s ease, color .15s ease, transform .15s ease;
}
.recruiting-frontline-pedir:hover { color: #fff; background: #0f8f86; transform: translateY(-1px); }
.recruiting-frontline-pedir:focus-visible { outline: 2px solid #0f8f86; outline-offset: 2px; }
.recruiting-frontline-pedir i { font-size: .7rem; }
.recruiting-frontline-pie { margin: 0; color: #64748b; font-size: .69rem; line-height: 1.45; }

/* Recien pedido: el check entra con un saltito. */
.recruiting-frontline-lista li.is-recien .recruiting-frontline-check { animation: recruiting-uniformes-salta .5s cubic-bezier(.2, 1.4, .4, 1) both; }
.recruiting-frontline.is-llamando { animation: recruiting-uniformes-llama 1.4s ease-out both; }

@media (prefers-reduced-motion: reduce) {
  .recruiting-frontline-lista li.is-recien .recruiting-frontline-check,
  .recruiting-frontline.is-llamando { animation: none; }
  .recruiting-frontline-pedir { transition: none; }
}

/* La foto del candidato (23-sep) ----------------------------------------------
   Se pone en la ficha (junto a sus datos, o en su avatar) y en «Revisar
   ingreso»; al contratarlo pasa a su expediente. */

/* El avatar de arriba: sus iniciales hasta que llega la foto. */
.recruiting-foto-avatar { position: relative; flex: none; padding: 0; border: 0; overflow: visible; }
button.recruiting-foto-avatar { cursor: pointer; transition: transform .14s ease, box-shadow .14s ease; }
button.recruiting-foto-avatar:hover { box-shadow: 0 0 0 3px #ccfbf1; }
button.recruiting-foto-avatar:focus-visible { outline: 2px solid #0f766e; outline-offset: 3px; }
button.recruiting-foto-avatar.is-over { box-shadow: 0 0 0 3px #14b8a6; transform: scale(1.06); }
.recruiting-foto-avatar.is-busy { opacity: .6; cursor: progress; }
.recruiting-foto-avatar .recruiting-foto-img {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: center / cover no-repeat;
  opacity: 0;
  transition: opacity .2s ease;
}
.recruiting-foto-avatar.tiene-foto .recruiting-foto-img { opacity: 1; }
.recruiting-foto-avatar.tiene-foto .recruiting-foto-iniciales { visibility: hidden; }

/* El marco: la proporcion del recuadro del formato de ingreso. Se suelta la
   imagen encima o se le da para buscarla. */
.recruiting-foto-marco {
  position: relative;
  width: 104px;
  height: 124px;
  flex: none;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1.5px dashed #b6c2d1;
  border-radius: 12px;
  background: #f8fafc;
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease, transform .12s ease, box-shadow .15s ease;
}
.recruiting-foto-marco:hover { border-color: #5eead4; background: #f0fdfa; }
.recruiting-foto-marco:focus-within { border-color: #0f766e; box-shadow: 0 0 0 3px rgba(15, 118, 110, .16); }
.recruiting-foto-marco.is-over { border: 2px dashed #14b8a6; background: #ecfeff; transform: scale(1.03); }
.recruiting-foto-marco.is-busy { opacity: .6; cursor: progress; }
.recruiting-foto-marco.is-bloqueado { cursor: default; }
.recruiting-foto-marco .recruiting-foto-img {
  position: absolute;
  inset: 0;
  background: center / cover no-repeat;
  opacity: 0;
  transition: opacity .2s ease;
}
.recruiting-foto-marco.tiene-foto { border: 1px solid #cbd5e1; background: #fff; }
.recruiting-foto-marco.tiene-foto .recruiting-foto-img { opacity: 1; }
.recruiting-foto-marco.tiene-foto .recruiting-foto-vacia { display: none; }
.recruiting-foto-vacia { display: grid; justify-items: center; gap: 2px; padding: 8px; color: #94a3b8; text-align: center; }
.recruiting-foto-vacia i { margin-bottom: 2px; color: #2dd4bf; font-size: 1.55rem; line-height: 1; }
.recruiting-foto-vacia b { color: #334155; font-size: .7rem; font-weight: 700; line-height: 1.2; }
.recruiting-foto-vacia small { font-size: .62rem; }
/* Con foto, al pasar por encima dice que se puede cambiar. */
.recruiting-foto-cambiar {
  position: absolute;
  left: 6px;
  right: 6px;
  bottom: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 4px 6px;
  border-radius: 999px;
  color: #fff;
  background: rgba(15, 23, 42, .64);
  font-size: .62rem;
  font-weight: 700;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .15s ease, transform .15s ease;
  pointer-events: none;
}
.recruiting-foto-marco.tiene-foto:hover .recruiting-foto-cambiar,
.recruiting-foto-marco.tiene-foto:focus-within .recruiting-foto-cambiar { opacity: 1; transform: none; }

/* En la ficha: el marco a la izquierda de sus datos. */
.recruiting-candidato-con-foto { display: grid; grid-template-columns: 108px minmax(0, 1fr); gap: 14px 18px; align-items: start; }
.recruiting-foto-campo { display: grid; justify-items: center; gap: 6px; padding-top: 2px; }
.recruiting-foto-pie { min-height: 22px; display: flex; align-items: center; justify-content: center; }
.recruiting-foto-pie small { color: #94a3b8; font-size: .62rem; line-height: 1.35; text-align: center; }
.recruiting-foto-quitar {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 9px;
  border: 0;
  border-radius: 999px;
  color: #94a3b8;
  background: none;
  font: inherit;
  font-size: .66rem;
  font-weight: 650;
  cursor: pointer;
  transition: color .15s ease, background .15s ease;
}
.recruiting-foto-quitar:hover { color: #b91c1c; background: #fee2e2; }
.recruiting-foto-quitar:focus-visible { outline: 2px solid #b91c1c; outline-offset: 1px; }
.recruiting-foto-error { max-width: 16ch; margin: 0; color: #b91c1c; font-size: .64rem; line-height: 1.35; text-align: center; }
.recruiting-foto-error:empty { display: none; }

/* En «Revisar ingreso», arriba a la derecha. */
.recruiting-foto-tarjeta { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 12px; align-items: start; }
.recruiting-foto-marco.is-chico { width: 72px; height: 86px; border-radius: 10px; }
.recruiting-foto-marco.is-chico .recruiting-foto-vacia { padding: 4px; }
.recruiting-foto-marco.is-chico .recruiting-foto-vacia i { font-size: 1.25rem; }
.recruiting-foto-marco.is-chico .recruiting-foto-cambiar { left: 4px; right: 4px; bottom: 4px; padding: 3px 4px; font-size: .56rem; }
.recruiting-foto-tarjeta-copia { min-width: 0; display: grid; justify-items: start; gap: 3px; }
.recruiting-foto-tarjeta-copia h6 { margin: 0; }
.recruiting-foto-tarjeta-estado { display: inline-flex; align-items: center; gap: 5px; margin: 0; font-size: .8rem; font-weight: 750; }
.recruiting-foto-tarjeta.is-lista .recruiting-foto-tarjeta-estado { color: #15803d; }
.recruiting-foto-tarjeta.is-falta .recruiting-foto-tarjeta-estado { color: #64748b; }
.recruiting-foto-tarjeta-copia small { color: #64748b; font-size: .68rem; line-height: 1.45; }
.recruiting-foto-tarjeta .recruiting-foto-quitar { margin: 1px 0 0 -9px; }
.recruiting-foto-tarjeta .recruiting-foto-error { max-width: none; text-align: left; }

/* Al darle a crear sin foto: la zona para ponerla ahi mismo. */
.recruiting-foto-pregunta { width: 100%; margin-top: 8px; }
.recruiting-foto-soltar {
  width: 100%;
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border: 1.5px dashed #99f6e4;
  border-radius: 14px;
  background: #f0fdfa;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, transform .12s ease;
}
.recruiting-foto-soltar:hover { border-color: #14b8a6; background: #ecfeff; }
.recruiting-foto-soltar:focus-visible { outline: 2px solid #0f766e; outline-offset: 2px; }
.recruiting-foto-soltar.is-over { border-style: solid; border-color: #0f766e; background: #ccfbf1; transform: scale(1.02); }
.recruiting-foto-soltar.is-busy { opacity: .7; cursor: progress; }
.recruiting-foto-soltar.is-mal { border-color: #fca5a5; background: #fef2f2; }
.recruiting-foto-soltar.is-mal small { color: #b91c1c; }
.recruiting-foto-soltar.is-lista { border-style: solid; border-color: #86efac; background: #f0fdf4; }
.recruiting-foto-marco.is-dialogo { width: 64px; height: 76px; border-radius: 10px; background: #fff; pointer-events: none; }
.recruiting-foto-marco.is-dialogo .recruiting-foto-vacia i { font-size: 1.3rem; }
.recruiting-foto-soltar-copia { min-width: 0; display: grid; gap: 2px; }
.recruiting-foto-soltar-copia b { color: #0f172a; font-size: .8rem; font-weight: 750; }
.recruiting-foto-soltar-copia small { color: #64748b; font-size: .68rem; line-height: 1.4; }
.recruiting-confirm-actions .recruiting-primary-button i { margin-right: 6px; }

/* En el traspaso viaja su foto, si la tiene. */
.recruiting-traspaso-avatar.tiene-foto { background-position: center; background-size: cover; }

@media (max-width: 720px) {
  .recruiting-candidato-con-foto { grid-template-columns: minmax(0, 1fr); }
  .recruiting-foto-campo { justify-items: start; }
}
@media (prefers-reduced-motion: reduce) {
  button.recruiting-foto-avatar,
  .recruiting-foto-marco,
  .recruiting-foto-marco .recruiting-foto-img,
  .recruiting-foto-avatar .recruiting-foto-img,
  .recruiting-foto-cambiar,
  .recruiting-foto-soltar { transition: none; }
}

/* El antidoping (23-sep) -------------------------------------------------------
   Ya no se captura a mano: se pide a alguien («Solicitar a») y queda en ambar
   hasta que la app de Antidoping registra el resultado. */
.recruiting-antidoping-pedir { position: relative; }
/* La lista de «Solicitar a» sale por debajo de la tarjeta: esta no la recorta,
   y la franja de color se redondea sola para no asomar por las esquinas. */
.recruiting-validation[data-validation-card="antidoping"] { overflow: visible; }
.recruiting-validation[data-validation-card="antidoping"]::before { border-radius: 11px 0 0 11px; }
.recruiting-antidoping-boton {
  width: 100%;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 8px 12px 8px 9px;
  border: 1px solid #99f6e4;
  border-radius: 11px;
  background: #f0fdfa;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.recruiting-antidoping-boton:hover { border-color: #2dd4bf; background: #ccfbf1; }
.recruiting-antidoping-boton:focus-visible { outline: 2px solid #0f766e; outline-offset: 2px; }
.recruiting-antidoping-boton[aria-expanded="true"] { border-color: #0f766e; box-shadow: 0 0 0 3px rgba(15, 118, 110, .14); }
.recruiting-antidoping-boton-icono {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  color: #fff;
  background: #0f766e;
  font-size: .84rem;
}
.recruiting-antidoping-copia { min-width: 0; display: grid; gap: 1px; }
.recruiting-antidoping-copia b { overflow: hidden; color: #0f172a; font-size: .78rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.recruiting-antidoping-copia small { color: #64748b; font-size: .66rem; line-height: 1.4; }
.recruiting-antidoping-flecha { color: #0f766e; font-size: .72rem; transition: transform .18s ease; }
[aria-expanded="true"] > .recruiting-antidoping-flecha { transform: rotate(180deg); }

/* La lista de a quien se le puede pedir: sale debajo del boton. */
.recruiting-antidoping-menu {
  position: absolute;
  z-index: 20;
  /* Ya son siete personas: si no cabe, la lista se recorre por dentro. */
  max-height: min(390px, 62vh);
  overflow-y: auto;
  overscroll-behavior: contain;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  display: grid;
  gap: 2px;
  padding: 8px;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 16px 40px rgba(15, 23, 42, .16), 0 2px 6px rgba(15, 23, 42, .06);
  animation: recruiting-antidoping-baja .16s ease-out both;
}
.recruiting-antidoping-menu[hidden] { display: none; }
.recruiting-antidoping-menu-titulo { margin: 2px 6px 4px; color: #64748b; font-size: .63rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.recruiting-antidoping-opcion {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border: 0;
  border-radius: 9px;
  background: none;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background .12s ease;
}
.recruiting-antidoping-opcion:hover,
.recruiting-antidoping-opcion:focus-visible { background: #f0fdfa; outline: none; }
.recruiting-antidoping-opcion > .bi-send { color: #0f766e; font-size: .8rem; opacity: 0; transform: translateX(-4px); transition: opacity .12s ease, transform .12s ease; }
.recruiting-antidoping-opcion:hover > .bi-send,
.recruiting-antidoping-opcion:focus-visible > .bi-send { opacity: 1; transform: none; }
.recruiting-antidoping-avatar {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--avatar-ink, #0f766e);
  background: var(--avatar-bg, #ccfbf1);
  font-size: .68rem;
  font-weight: 800;
}
@keyframes recruiting-antidoping-baja {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: none; }
}

/* Solicitado: en ambar, a quien y cuando, y cancelarlo mientras siga pendiente. */
.recruiting-antidoping-solicitado {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 8px 10px 8px 9px;
  border: 1px solid #fde68a;
  border-radius: 11px;
  background: #fffbeb;
}
.recruiting-antidoping-icono {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  color: #b45309;
  background: #fef3c7;
  font-size: .84rem;
}
.recruiting-antidoping-solicitado .recruiting-antidoping-copia b { color: #78350f; white-space: normal; }
.recruiting-antidoping-solicitado .recruiting-antidoping-copia small { color: #92400e; }
.recruiting-antidoping-cancelar {
  padding: 5px 10px;
  border: 0;
  border-radius: 999px;
  color: #b45309;
  background: none;
  font: inherit;
  font-size: .68rem;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
  transition: color .15s ease, background .15s ease;
}
.recruiting-antidoping-cancelar:hover { color: #b91c1c; background: #fee2e2; }
.recruiting-antidoping-cancelar:focus-visible { outline: 2px solid #b45309; outline-offset: 1px; }

/* Con resultado: la pildora lo dice, y debajo cuando, donde y quien. */
.recruiting-antidoping-resultado { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.recruiting-antidoping-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 11px;
  border-radius: 999px;
  font-size: .74rem;
  font-weight: 800;
}
.recruiting-antidoping-resultado.is-negativo .recruiting-antidoping-pill { color: #15803d; background: #dcfce7; }
.recruiting-antidoping-resultado.is-positivo .recruiting-antidoping-pill { color: #fff; background: #dc2626; }
.recruiting-antidoping-dato { color: #475569; font-size: .7rem; }
.recruiting-antidoping-notas {
  flex-basis: 100%;
  margin: 0;
  padding: 7px 10px;
  border-radius: 9px;
  color: #334155;
  background: #f8fafc;
  font-size: .72rem;
  line-height: 1.45;
  white-space: pre-line;
}
.recruiting-antidoping-resultado .recruiting-evidence-list { flex-basis: 100%; }
.recruiting-antidoping-nota { display: flex; align-items: center; gap: 6px; margin: 0; color: #64748b; font-size: .7rem; line-height: 1.4; }
/* Recien pedido (o cancelado), o al llegar desde «Todavia no puede pasar»:
   la tarjeta se ilumina un momento. */
.recruiting-validation.is-recien,
.recruiting-validation.is-llamando,
.recruiting-aside-card.is-recien { animation: recruiting-uniformes-llama 1.4s ease-out both; }

/* «Revisar ingreso»: el sabado en dos menus y los dias de descanso en
   pastillas, como en Expedientes pero con el aire de Reclutamiento (24-sep). */
.recruiting-rango-horas { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 8px; }
.recruiting-rango-horas > i { color: #64748b; font-size: .78rem; font-style: normal; }
.recruiting-dias { display: flex; flex-wrap: wrap; gap: 6px; }
.recruiting-dia {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 5px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  color: #475569;
  background: #fff;
  font-size: .76rem;
  font-weight: 650;
  cursor: pointer;
  user-select: none;
  transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.recruiting-field .recruiting-dia input { width: auto; min-width: 0; height: auto; min-height: 0; margin: 0; padding: 0; border: 0; box-shadow: none; accent-color: #0f766e; }
.recruiting-dia:hover { border-color: #5eead4; }
.recruiting-dia:has(input:checked) { border-color: #0f766e; color: #0f5f59; background: #f0fdfa; }
.recruiting-dia:focus-within { outline: 2px solid rgba(15, 118, 110, .3); outline-offset: 1px; }

@media (prefers-reduced-motion: reduce) {
  .recruiting-antidoping-menu,
  .recruiting-validation.is-recien,
  .recruiting-validation.is-llamando { animation: none; }
  .recruiting-antidoping-boton,
  .recruiting-antidoping-flecha,
  .recruiting-antidoping-opcion,
  .recruiting-antidoping-opcion > .bi-send,
  .recruiting-antidoping-cancelar { transition: none; }
}

/* Por que no pasa a «Listo para ingreso» (23-sep): antes era un aviso chico
   abajo a la derecha que se perdia. Ahora es la tarjeta del centro, con el
   estado de su antidoping en este renglon... */
.recruiting-frena {
  width: 100%;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding: 10px 12px 10px 10px;
  border: 1px solid #fecaca;
  border-radius: 12px;
  background: #fef2f2;
  text-align: left;
}
.recruiting-frena-icono {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  color: #b91c1c;
  background: #fee2e2;
  font-size: .95rem;
}
.recruiting-frena-copia { min-width: 0; display: grid; gap: 2px; }
.recruiting-frena-copia b { color: #7f1d1d; font-size: .8rem; font-weight: 750; line-height: 1.35; }
.recruiting-frena-copia small { color: #991b1b; font-size: .7rem; line-height: 1.45; }
/* Pedido y sin resultado: en ambar, como en la ficha. */
.recruiting-frena.is-espera { border-color: #fde68a; background: #fffbeb; }
.recruiting-frena.is-espera .recruiting-frena-icono { color: #b45309; background: #fef3c7; }
.recruiting-frena.is-espera .recruiting-frena-copia b { color: #78350f; }
.recruiting-frena.is-espera .recruiting-frena-copia small { color: #92400e; }

/* ...y, al arrastrar la tarjeta, la columna se pone en rojo y lo dice ANTES
   de soltarla. */
.recruiting-column.is-bloqueada {
  /* Aunque la columna este vacia, el aviso cabe entero. */
  min-height: 196px;
  border-color: #fca5a5;
  border-top-color: #dc2626;
  background: #fef2f2;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, .12);
}
.recruiting-column.is-bloqueada .recruiting-column-dot { background: #dc2626; }
.recruiting-column.is-bloqueada > .recruiting-column-list,
.recruiting-column.is-bloqueada > .recruiting-more { opacity: .3; }
.recruiting-column-bloqueo {
  position: absolute;
  top: 54px;
  left: 10px;
  right: 10px;
  z-index: 2;
  display: grid;
  justify-items: center;
  gap: 3px;
  padding: 14px 12px 13px;
  border: 1px dashed #f87171;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(127, 29, 29, .12);
  text-align: center;
  pointer-events: none;
  animation: recruiting-bloqueo-entra .16s ease-out both;
}
.recruiting-column-bloqueo-icono {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  margin-bottom: 3px;
  border-radius: 10px;
  color: #b91c1c;
  background: #fee2e2;
  font-size: 1rem;
}
.recruiting-column-bloqueo.is-espera .recruiting-column-bloqueo-icono { color: #b45309; background: #fef3c7; }
.recruiting-column-bloqueo b { color: #7f1d1d; font-size: .78rem; font-weight: 800; line-height: 1.3; }
.recruiting-column-bloqueo small { color: #991b1b; font-size: .68rem; line-height: 1.4; text-wrap: balance; }
@keyframes recruiting-bloqueo-entra {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .recruiting-column-bloqueo { animation: none; }
}

/* Teléfono: las acciones y los filtros ocupan filas propias; únicamente el
   tablero se desplaza hacia los lados. Se limita al panel de Reclutamiento,
   porque Encuestas y Antidoping comparten algunas de estas clases. */
.recruiting-sync-label { display: none; }
.app-shell.recruiting-central-lock .discovery-panel.workspace-slot { min-height: 0; height: 100%; max-height: 100%; }
/* Cada estatus aprovecha el alto disponible; sólo su lista recorre candidatos.
   Cerrados y las otras páginas que reutilizan estas clases conservan su layout. */
#applicationsRecruitingPanel .recruiting-body.has-recruiting-board { display: flex; flex-direction: column; overflow: hidden; }
#applicationsRecruitingPanel .has-recruiting-board > :is(.recruiting-toolbar, .recruiting-plantilla-note) { flex: none; }
#applicationsRecruitingPanel .recruiting-board { flex: 1; min-width: 0; min-height: 0; align-items: stretch; overflow-x: auto; overflow-y: hidden; padding-bottom: 8px; }
#applicationsRecruitingPanel .recruiting-column { display: flex; flex-direction: column; min-height: 0; height: 100%; }
#applicationsRecruitingPanel .recruiting-column-head { flex: none; }
#applicationsRecruitingPanel .recruiting-column-list { flex: 1; min-height: 0; align-content: start; overflow-y: auto; overflow-x: hidden; overscroll-behavior-y: contain; scrollbar-width: thin; scrollbar-color: #94a3b8 transparent; }
#applicationsRecruitingPanel .recruiting-column-list:focus-visible { outline: 2px solid var(--column-accent); outline-offset: -2px; }
#applicationsRecruitingPanel .recruiting-column-list::-webkit-scrollbar { width: 6px; }
#applicationsRecruitingPanel .recruiting-column-list::-webkit-scrollbar-thumb { background: #94a3b8; border: 1px solid #f8fafc; border-radius: 999px; }
@media (max-width: 720px), (max-width: 960px) and (max-height: 500px) and (orientation: landscape) {
  .recruiting-confirm[data-recruiting-mobile="true"] :is(.recruiting-confirm-campos input, .flowmo-select-trigger) { min-height: 44px; font-size: 16px; }
  .recruiting-confirm[data-recruiting-mobile="true"] .recruiting-confirm-actions button { min-height: 44px; }
  #applicationsRecruitingPanel .recruiting-head {
    flex: none;
    gap: 14px;
    padding: 14px 12px 12px;
  }
  #applicationsRecruitingPanel .recruiting-head-copy { width: 100%; min-width: 0; padding-right: 48px; }
  #applicationsRecruitingPanel .recruiting-head-copy nav,
  #applicationsRecruitingPanel .recruiting-title-row p { display: none; }
  #applicationsRecruitingPanel .recruiting-title-row { min-height: 36px; gap: 8px; }
  #applicationsRecruitingPanel .recruiting-title-icon { width: 32px; height: 32px; flex: none; }
  #applicationsRecruitingPanel .recruiting-title-row > div { min-width: 0; }
  #applicationsRecruitingPanel .recruiting-title-row h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 1.06rem; line-height: 1.3; }
  #applicationsRecruitingPanel .recruiting-city-pill { margin-left: 0; }
  #applicationsRecruitingPanel .recruiting-head-actions { gap: 8px; min-width: 0; }
  #applicationsRecruitingPanel .recruiting-head-actions > button:not(.recruiting-close-button) {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
    min-height: 44px;
    padding: 10px 6px;
    justify-content: center;
    flex-direction: column;
    gap: 6px;
    font-size: .75rem;
  }
  #applicationsRecruitingPanel .recruiting-head-actions > [data-recruiting-new].recruiting-primary-button { flex-basis: 100%; order: -1; flex-direction: row; font-size: .88rem; }
  #applicationsRecruitingPanel .recruiting-head-actions span { display: inline; }
  #applicationsRecruitingPanel.is-mobile-actions-collapsed .recruiting-head-actions > :is([data-recruiting-sync], [data-recruiting-calendar], [data-recruiting-assignees]) { display: none; }
  #applicationsRecruitingPanel .recruiting-close-button { top: 10px; right: 10px; width: 44px; height: 44px; min-height: 44px; }
  #applicationsRecruitingPanel .recruiting-body { padding: 12px; overflow-x: hidden; }
  #applicationsRecruitingPanel .recruiting-toolbar { min-width: 0; gap: 8px; margin-bottom: 12px; grid-template-columns: minmax(0, 1fr); }
  #applicationsRecruitingPanel .recruiting-search { min-width: 0; }
  #applicationsRecruitingPanel .recruiting-search input { min-width: 0; min-height: 46px; font-size: 16px; }
  #applicationsRecruitingPanel .recruiting-scopes { display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; scrollbar-width: thin; }
  #applicationsRecruitingPanel .recruiting-scope { flex: none; min-width: 0; min-height: 44px; padding: 9px 12px; justify-content: center; font-size: .8rem; line-height: 1.35; white-space: nowrap; }
  #applicationsRecruitingPanel .recruiting-scope > i { flex: none; }
  #applicationsRecruitingPanel .recruiting-sync-note { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; white-space: normal; text-align: left; line-height: 1.5; }
  #applicationsRecruitingPanel .recruiting-sync-text { min-width: 0; }
  #applicationsRecruitingPanel .recruiting-tests-button { margin-left: 0; min-height: 44px; }
  #applicationsRecruitingPanel .recruiting-board { display: flex; align-items: stretch; width: 100%; min-width: 0; max-width: 100%; gap: 12px; overflow-x: auto; padding-bottom: 10px; scroll-snap-type: x proximity; scroll-padding-inline: 0; }
  #applicationsRecruitingPanel .recruiting-column { flex: 0 0 calc(100% - 28px); min-width: 0; scroll-snap-align: start; }
  #applicationsRecruitingPanel .recruiting-column-head { min-height: 46px; padding: 10px 12px; }
  #applicationsRecruitingPanel .recruiting-column-list { gap: 10px; padding: 10px; }
  #applicationsRecruitingPanel .recruiting-candidate { padding: 12px; }
  #applicationsRecruitingPanel .recruiting-candidate:hover { transform: none; }
  #applicationsRecruitingPanel .recruiting-review-button { min-height: 44px; }
  #applicationsRecruitingPanel .recruiting-modal-backdrop { padding: 0; align-items: end; }
  #applicationsRecruitingPanel .recruiting-modal { width: 100%; max-height: 94vh; max-height: 94dvh; border-radius: 16px 16px 0 0; }
  #applicationsRecruitingPanel .recruiting-modal-close { width: 44px; height: 44px; flex: none; }
  #applicationsRecruitingPanel .recruiting-sheet-id { padding: 12px; gap: 8px; }
  #applicationsRecruitingPanel .recruiting-sheet-id .recruiting-avatar.is-lg { width: 40px; height: 40px; }
  #applicationsRecruitingPanel .recruiting-modal-head.is-sheet h4 { font-size: .95rem; }
  #applicationsRecruitingPanel .recruiting-sheet-contact { flex-wrap: nowrap; overflow-x: auto; }
  #applicationsRecruitingPanel .recruiting-sheet-contact > :is(a, span) { flex: none; }
  #applicationsRecruitingPanel .recruiting-assign { grid-column: 1 / -1; grid-row: 2; width: 100%; margin-top: 0; }
  #applicationsRecruitingPanel .recruiting-stepper li:not(.is-current) .recruiting-step-label { display: none; }
  #applicationsRecruitingPanel .recruiting-modal-body { padding: 14px 12px 18px; }
  #applicationsRecruitingPanel .recruiting-agenda-filtros { top: -14px; margin: -14px -12px 0; padding: 12px; }
  #applicationsRecruitingPanel .recruiting-field :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
  #applicationsRecruitingPanel .recruiting-assign select,
  #applicationsRecruitingPanel .flowmo-select-trigger { min-height: 44px; font-size: 16px; }
  #applicationsRecruitingPanel .recruiting-modal-footer { gap: 8px; padding: 12px 12px calc(12px + env(safe-area-inset-bottom, 0px)); }
  #applicationsRecruitingPanel .recruiting-modal-footer button,
  #applicationsRecruitingPanel .recruiting-interview-suggestion button { min-height: 44px; }
}
@media (max-width: 960px) and (max-height: 500px) and (orientation: landscape) {
  #applicationsRecruitingPanel .recruiting-head { flex-direction: row; align-items: center; gap: 16px; padding-right: 62px; }
  #applicationsRecruitingPanel .recruiting-head-copy { width: auto; flex: none; padding-right: 0; }
  #applicationsRecruitingPanel .recruiting-head-actions { width: auto; flex: 1; flex-wrap: nowrap; }
  #applicationsRecruitingPanel .recruiting-head-actions > [data-recruiting-new].recruiting-primary-button { flex-basis: 0; order: 0; }
  #applicationsRecruitingPanel .recruiting-toolbar { grid-template-columns: minmax(170px, .8fr) minmax(0, 1.2fr) auto; }
  #applicationsRecruitingPanel .recruiting-scopes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #applicationsRecruitingPanel .recruiting-scope:last-child:nth-child(odd) { grid-column: auto; }
  #applicationsRecruitingPanel .recruiting-column { flex-basis: min(360px, calc(100% - 28px)); }
  #applicationsRecruitingPanel .recruiting-sheet-id { grid-template-columns: 40px minmax(0, 1fr) minmax(170px, 220px) 44px; }
  #applicationsRecruitingPanel .recruiting-assign { grid-column: 3; grid-row: 1; }
}

/* Accesos de la app en una barra reservada, sin cambiar las posiciones que
   la persona guardó para las demás páginas. La clase sigue el candado del
   panel y se limpia también al navegar hacia otro módulo. */
@media (max-width: 720px) and (pointer: coarse), (max-width: 960px) and (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  html[data-flowmo-runtime="web"][data-flowmo-mobile-navigation="enabled"] body.recruiting-mobile-open .applications-workspace.is-recruiting-open {
    padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px));
  }
  html[data-flowmo-runtime="web"][data-flowmo-mobile-navigation="enabled"] body.recruiting-mobile-open.recruiting-mobile-dialog-open .applications-workspace.is-recruiting-open { padding-bottom: 0; }
  html[data-flowmo-runtime="web"][data-flowmo-mobile-navigation="enabled"] body.recruiting-mobile-dialog-open .mobile-web-navigation-launchers { visibility: hidden; }
  html[data-flowmo-runtime="web"][data-flowmo-mobile-navigation="enabled"] body.recruiting-mobile-open .mobile-web-navigation-launchers {
    position: fixed;
    inset: auto 0 var(--flowmo-mobile-viewport-bottom-offset, 0px);
    height: calc(64px + env(safe-area-inset-bottom, 0px));
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 12px;
    padding: 9px max(12px, env(safe-area-inset-right, 0px)) calc(10px + env(safe-area-inset-bottom, 0px)) max(12px, env(safe-area-inset-left, 0px));
    border-top: 1px solid #dce7e6;
    background: #fff;
  }
  html[data-flowmo-runtime="web"][data-flowmo-mobile-navigation="enabled"] body.recruiting-mobile-open .mobile-side-launcher {
    position: static;
    top: auto !important;
    width: 100%;
    height: 44px;
    min-height: 44px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid #c2e4df;
    border-radius: 12px;
    box-shadow: none;
    transform: none !important;
    transition: background-color 160ms ease, border-color 160ms ease;
    touch-action: manipulation;
    will-change: auto;
  }
  html[data-flowmo-runtime="web"][data-flowmo-mobile-navigation="enabled"] body.recruiting-mobile-open .mobile-side-launcher > span { max-width: none; font-size: 12px; }

  /* Menú sigue disponible al usar IA, con su propio espacio debajo del
     compositor. También se respeta el viewport reducido por el teclado. */
  html[data-flowmo-runtime="web"][data-flowmo-mobile-navigation="enabled"] body.recruiting-mobile-open.mobile-assistant-floating-open .mobile-web-navigation-launchers { grid-template-columns: minmax(0, 1fr); }
  html[data-flowmo-runtime="web"][data-flowmo-mobile-navigation="enabled"] body.recruiting-mobile-open.mobile-assistant-floating-open .mobile-assistant-toggle { display: none; }
  html[data-flowmo-runtime="web"][data-flowmo-mobile-navigation="enabled"] body.recruiting-mobile-open.mobile-assistant-floating-open #mobileAssistantFloatingHost {
    bottom: calc(var(--flowmo-mobile-viewport-bottom-offset, 0px) + 76px + env(safe-area-inset-bottom, 0px));
    height: min(674px, calc(var(--flowmo-mobile-viewport-height, 100dvh) - 88px - env(safe-area-inset-bottom, 0px))) !important;
    max-height: calc(var(--flowmo-mobile-viewport-height, 100dvh) - 88px - env(safe-area-inset-bottom, 0px)) !important;
  }
  html[data-flowmo-runtime="web"][data-flowmo-mobile-navigation="enabled"] body.recruiting-mobile-open.mobile-assistant-is-fullscreen #mobileAssistantFloatingHost {
    inset: auto 0 calc(var(--flowmo-mobile-viewport-bottom-offset, 0px) + 64px + env(safe-area-inset-bottom, 0px)) !important;
    height: calc(var(--flowmo-mobile-viewport-height, 100dvh) - 64px - env(safe-area-inset-bottom, 0px)) !important;
    min-height: 0 !important;
    max-height: calc(var(--flowmo-mobile-viewport-height, 100dvh) - 64px - env(safe-area-inset-bottom, 0px)) !important;
  }
  html[data-flowmo-runtime="web"][data-flowmo-mobile-navigation="enabled"] body.recruiting-mobile-open.mobile-assistant-is-fullscreen #mobileAssistantFloatingHost > .assistant-workspace {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
  }
}
