/* Antidoping -------------------------------------------------------------------
   Las pruebas que pide Reclutamiento: quien las hace registra el resultado y la
   ficha del candidato se pone al día sola. Reutiliza las piezas de
   Reclutamiento (cabecera, chips, botones, ventanas, campos, zonas de soltar)
   para que las pantallas de RR.HH. se lean de la misma familia; aquí va solo lo
   propio: la tarjeta, el panel, la lista y la ventana del resultado. Su color
   es el azul cielo de un laboratorio; los resultados, verde y rojo. */

/* styles.css pinta la tarjeta (categoria, borde al pasar, barra) con --app-*. */
.application-card--antidoping {
  --app-accent: #0284c7;
  --app-soft: #f0f9ff;
  --app-ink: #0369a1;
}
.application-card--antidoping::before { background: #0284c7; }
.application-card--antidoping .application-card-icon {
  color: #0369a1;
  border-color: #bae6fd;
  background: #f0f9ff;
}
.application-card--antidoping .application-run-button {
  color: #0369a1;
  border-color: #bae6fd;
  background: #f0f9ff;
}
.application-card--antidoping .application-run-button:hover { background: #e0f2fe; }
.application-card-chip--antidoping { color: #0369a1; background: #e0f2fe; border-color: #bae6fd; }

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

.antidoping-panel {
  min-height: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  color: #0f172a;
  background: #f5f8fb;
}
.antidoping-panel[hidden] { display: none !important; }
.antidoping-panel .recruiting-title-icon { color: #0369a1; border-color: #bae6fd; background: #f0f9ff; }
.antidoping-panel .recruiting-body { overflow: auto; }

.adp { display: grid; gap: 14px; max-width: 1180px; margin: 0 auto; }

/* Las cifras de arriba: lo que espera, y como van saliendo. */
.adp-resumen { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.adp-cifra {
  display: grid;
  gap: 2px;
  padding: 11px 14px;
  border: 1px solid #e3e8ef;
  border-radius: 12px;
  background: #fff;
}
.adp-cifra span { color: #64748b; font-size: .66rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.adp-cifra strong { color: #0f172a; font-size: 1.35rem; font-weight: 800; line-height: 1.1; font-variant-numeric: tabular-nums; }
.adp-cifra.is-pendiente { border-color: #fde68a; background: #fffbeb; }
.adp-cifra.is-pendiente strong { color: #b45309; }
.adp-cifra.is-negativo strong { color: #15803d; }
.adp-cifra.is-positivo strong { color: #b91c1c; }
.adp-cifra.is-sin strong { color: #475569; }
.adp-cifra small { color: #94a3b8; font-size: .66rem; font-variant-numeric: tabular-nums; }
/* Las cifras son tambien los filtros (24-sep): se ven como botones y la
   elegida queda marcada. */
button.adp-cifra {
  width: 100%;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
}
button.adp-cifra:hover { border-color: #7dd3fc; box-shadow: 0 6px 16px rgba(15, 23, 42, .07); transform: translateY(-1px); }
button.adp-cifra:focus-visible { outline: 2px solid #0284c7; outline-offset: 2px; }
button.adp-cifra.is-active { border-color: #0284c7; box-shadow: 0 0 0 3px rgba(2, 132, 199, .16); }
button.adp-cifra.is-pendiente.is-active { border-color: #d97706; box-shadow: 0 0 0 3px rgba(217, 119, 6, .16); }
button.adp-cifra.is-negativo.is-active { border-color: #16a34a; background: #f0fdf4; box-shadow: 0 0 0 3px rgba(22, 163, 74, .14); }
button.adp-cifra.is-positivo.is-active { border-color: #dc2626; background: #fef2f2; box-shadow: 0 0 0 3px rgba(220, 38, 38, .14); }
button.adp-cifra.is-todas.is-active { background: #f0f9ff; }
.adp-cifra.is-todas strong { color: #0369a1; }

.adp-barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; }
.adp-filtros { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.adp-filtro { display: inline-flex; align-items: center; gap: 7px; }
.adp-filtro span {
  min-width: 20px;
  padding: 0 6px;
  border-radius: 999px;
  color: #475569;
  background: #eef2f7;
  font-size: .66rem;
  font-weight: 750;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.adp-filtro.is-active { border-color: #7dd3fc; color: #0369a1; background: #f0f9ff; }
.adp-filtro.is-active span { color: #fff; background: #0284c7; }
.adp-buscar {
  position: relative;
  display: flex;
  align-items: center;
  width: min(270px, 100%);
}
.adp-buscar i { position: absolute; left: 11px; color: #94a3b8; font-size: .8rem; pointer-events: none; }
.adp-buscar input {
  width: 100%;
  min-height: 36px;
  padding: 7px 12px 7px 32px;
  border: 1px solid #d5dde8;
  border-radius: 10px;
  color: #0f172a;
  background: #fff;
  font: inherit;
  font-size: .8rem;
}
.adp-buscar input:focus-visible { border-color: #0284c7; outline: 2px solid rgba(2, 132, 199, .18); outline-offset: 0; }
.adp-nota { display: flex; align-items: center; gap: 7px; margin: 0; color: #64748b; font-size: .7rem; }

/* A la derecha de los filtros: de quien, y el buscador. */
.adp-controles { flex: 1 1 auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.adp-persona { display: block; width: min(250px, 100%); }
.adp-persona select { width: 100%; min-height: 36px; }
.adp-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* De donde sale el historico, y traer lo nuevo. */
.adp-historial {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  padding: 9px 10px 9px 11px;
  border: 1px solid #dbe7f3;
  border-radius: 12px;
  background: #fff;
}
.adp-historial.is-vacio { border-style: dashed; border-color: #7dd3fc; background: #f5fbff; }
.adp-historial-icono {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  color: #0369a1;
  background: #e0f2fe;
  font-size: .9rem;
}
.adp-historial-copia { min-width: 0; display: grid; gap: 1px; }
.adp-historial-copia b { color: #0f172a; font-size: .76rem; font-weight: 750; line-height: 1.35; }
.adp-historial-copia small { color: #64748b; font-size: .68rem; line-height: 1.4; }
.adp-traer { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.adp-traer .is-girando { animation: adp-gira 1s linear infinite; }
@keyframes adp-gira { to { transform: rotate(360deg); } }

/* La lista: una fila por prueba, con su franja de color. */
.adp-lista { display: grid; gap: 8px; }
.adp-fila {
  --adp-banda: #cbd5e1;
  position: relative;
  display: grid;
  grid-template-columns: 38px minmax(180px, 1.5fr) minmax(130px, 1fr) minmax(130px, 1fr) minmax(110px, .9fr) auto 40px auto;
  align-items: center;
  gap: 12px;
  padding: 11px 14px 11px 17px;
  overflow: hidden;
  border: 1px solid #e3e8ef;
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
}
.adp-fila::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--adp-banda); }
.adp-fila:hover { border-color: #bae6fd; box-shadow: 0 6px 16px rgba(15, 23, 42, .07); transform: translateY(-1px); }
.adp-fila:focus-visible { outline: 2px solid #0284c7; outline-offset: 2px; }
.adp-fila.is-pendiente { --adp-banda: #f59e0b; }
.adp-fila.is-negativo { --adp-banda: #22c55e; }
.adp-fila.is-positivo { --adp-banda: #dc2626; }
.adp-fila.is-cancelada { --adp-banda: #cbd5e1; background: #fbfcfd; }
.adp-fila.is-cancelada .adp-quien strong { color: #64748b; }
.adp-fila.is-sin { --adp-banda: #94a3b8; }
.adp-avatar {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--avatar-ink, #0369a1);
  background: var(--avatar-bg, #e0f2fe);
  font-size: .76rem;
  font-weight: 800;
}
.adp-avatar.is-lg { width: 48px; height: 48px; flex: none; font-size: .95rem; }
.adp-quien { min-width: 0; display: grid; gap: 2px; }
.adp-quien strong { overflow: hidden; color: #0f172a; font-size: .82rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.adp-quien small { overflow: hidden; color: #64748b; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.adp-marca-prueba {
  display: inline-block;
  margin-left: 4px;
  padding: 1px 6px;
  border: 1px dashed #c4b5fd;
  border-radius: 999px;
  color: #6d28d9;
  background: #faf5ff;
  font-size: .6rem;
  font-weight: 750;
  vertical-align: 1px;
}
/* Lo que se trajo del Base, y las aleatorias a empleados. */
.adp-marca-base,
.adp-marca-aleatoria {
  display: inline-block;
  margin-left: 4px;
  padding: 1px 6px;
  border-radius: 999px;
  font-size: .6rem;
  font-weight: 750;
  vertical-align: 1px;
}
.adp-marca-base { color: #0369a1; background: #e0f2fe; }
.adp-marca-aleatoria { color: #6d28d9; background: #ede9fe; }
.adp-dato { min-width: 0; display: grid; gap: 1px; }
.adp-dato small { overflow: hidden; color: #94a3b8; font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.adp-dato small:first-child { font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.adp-dato span { overflow: hidden; color: #1e293b; font-size: .76rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.adp-espera.is-tarde { color: #b45309; }
.adp-estado {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: .7rem;
  font-weight: 800;
  white-space: nowrap;
}
.adp-estado.is-pendiente { color: #b45309; background: #fef3c7; }
.adp-estado.is-negativo { color: #15803d; background: #dcfce7; }
.adp-estado.is-positivo { color: #fff; background: #dc2626; }
.adp-estado.is-cancelada { color: #64748b; background: #f1f5f9; }
.adp-estado.is-sin { color: #475569; background: #eef2f7; }
.adp-evidencia { display: inline-flex; align-items: center; justify-content: center; gap: 3px; color: #0369a1; font-size: .72rem; font-weight: 700; }
.adp-evidencia.is-vacia { color: #cbd5e1; }
.adp-accion {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 11px;
  border-radius: 999px;
  color: #0369a1;
  background: #f0f9ff;
  font-size: .72rem;
  font-weight: 750;
  white-space: nowrap;
}
.adp-fila.is-pendiente .adp-accion { color: #fff; background: #0284c7; }
.adp-fila:hover .adp-accion { filter: brightness(.96); }

.adp-vacio {
  display: grid;
  justify-items: center;
  gap: 4px;
  padding: 44px 20px;
  border: 1px dashed #d5dde8;
  border-radius: 14px;
  color: #64748b;
  background: #fff;
  text-align: center;
}
.adp-vacio i { margin-bottom: 4px; color: #94a3b8; font-size: 1.6rem; }
.adp-vacio.is-alegre i { color: #22c55e; }
.adp-vacio strong { color: #0f172a; font-size: .9rem; }
.adp-vacio span { font-size: .76rem; }

/* La siguiente tanda del historico. */
.adp-mas {
  justify-self: center;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 2px;
  padding: 8px 16px;
  border: 1px solid #bae6fd;
  border-radius: 999px;
  color: #0369a1;
  background: #fff;
  font: inherit;
  font-size: .74rem;
  font-weight: 750;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease;
}
.adp-mas span { color: #64748b; font-weight: 600; }
.adp-mas:hover { border-color: #7dd3fc; background: #f0f9ff; }
.adp-mas:focus-visible { outline: 2px solid #0284c7; outline-offset: 2px; }

/* La ventana de la prueba. */
.adp-modal { width: min(760px, 96vw); }
.adp-modal:focus { outline: none; }
.adp-modal-head { display: flex; align-items: center; gap: 13px; }
.adp-modal-head .recruiting-modal-head-copy { flex: 1; }
.adp-modal-head p { margin: 2px 0 0; color: #64748b; font-size: .76rem; }
.adp-estado-texto.is-pendiente { color: #b45309; }
.adp-estado-texto.is-negativo { color: #15803d; }
.adp-estado-texto.is-positivo { color: #b91c1c; }
.adp-estado-texto.is-cancelada { color: #64748b; }
.adp-estado-texto.is-sin { color: #475569; }
.adp-modal-body { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; background: #f7f9fc; }
.adp-chips { margin: 0; }
.adp-registro { display: flex; align-items: center; gap: 6px; margin: -4px 0 0; color: #64748b; font-size: .7rem; }
.adp-aviso { margin: 0; }
.adp-aviso[hidden] { display: none; }
/* Varias personas a la vez (24-sep): quien mas la tiene abierta, y el aviso
   de que otra persona la acaba de cambiar. */
.adp-aviso.is-otros { border-color: #fde68a; color: #92400e; background: #fffbeb; }
.adp-aviso.is-cambio { align-items: center; border-color: #fecaca; color: #991b1b; background: #fef2f2; }
.adp-aviso.is-cambio span { flex: 1; }
.adp-aviso.is-cambio button { flex: none; }
.adp-presencia { display: inline-flex; align-items: center; gap: 4px; color: #b45309; font-size: .66rem; font-weight: 700; }
.adp-presencia:empty { display: none; }
.adp-actividad { display: grid; gap: 8px; }
.adp-actividad h6 { margin: 0; color: #64748b; font-size: .66rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.adp-actividad ol { display: grid; gap: 6px; margin: 0; padding: 0 0 0 14px; border-left: 2px solid #e2e8f0; list-style: none; }
.adp-actividad li { display: grid; gap: 1px; }
.adp-actividad li b { color: #1e293b; font-size: .74rem; font-weight: 650; }
.adp-actividad li small { color: #64748b; font-size: .66rem; }
.adp-aviso.is-base { border-color: #bae6fd; color: #0c4a6e; background: #f0f9ff; }
.adp-chips .is-base { border-color: #bae6fd; color: #0369a1; background: #f0f9ff; }
.adp-chips .is-base i { color: #0369a1; }
.adp-chips .is-aleatoria { border-color: #ddd6fe; color: #6d28d9; background: #faf5ff; }
.adp-chips .is-aleatoria i { color: #6d28d9; }
.adp-doc-base { color: #0369a1; background: #e0f2fe; }
.adp-form { display: grid; gap: 14px; }

/* ¿Como salio?: dos opciones grandes, cada una con su color. */
.adp-resultado {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
  border: 0;
}
.adp-resultado legend { margin-bottom: 8px; padding: 0; color: #334155; font-size: .76rem; font-weight: 750; }
.adp-opcion {
  --adp-tono: #15803d;
  --adp-suave: #f0fdf4;
  --adp-borde: #86efac;
  position: relative;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  padding: 13px 14px;
  border: 1.5px solid #e2e8f0;
  border-radius: 14px;
  background: #fff;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease, transform .12s ease;
}
.adp-opcion.is-positivo { --adp-tono: #b91c1c; --adp-suave: #fef2f2; --adp-borde: #fca5a5; }
.adp-opcion input { position: absolute; opacity: 0; pointer-events: none; }
.adp-opcion:hover { border-color: var(--adp-borde); background: var(--adp-suave); }
.adp-opcion:focus-within { box-shadow: 0 0 0 3px rgba(2, 132, 199, .18); }
.adp-opcion:has(input:checked) {
  border-color: var(--adp-tono);
  background: var(--adp-suave);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--adp-tono) 16%, transparent);
}
.adp-opcion-icono {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  color: var(--adp-tono);
  background: var(--adp-suave);
  font-size: 1.2rem;
  transition: transform .15s ease;
}
.adp-opcion:has(input:checked) .adp-opcion-icono { color: #fff; background: var(--adp-tono); transform: scale(1.05); }
.adp-opcion-copia { display: grid; gap: 2px; }
.adp-opcion-copia b { color: #0f172a; font-size: .9rem; font-weight: 800; }
.adp-opcion-copia small { color: #64748b; font-size: .7rem; }

.adp-campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; }
.adp-ancho { grid-column: 1 / -1; }
.adp-campos textarea { min-height: 64px; resize: vertical; }

.adp-evidencias { display: grid; gap: 8px; }
.adp-evidencias:empty { display: none; }
.adp-evidencias h6 {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  color: #64748b;
  font-size: .66rem;
  font-weight: 750;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.adp-evidencias h6 span { padding: 1px 7px; border-radius: 999px; color: #0369a1; background: #e0f2fe; font-size: .62rem; letter-spacing: 0; }
.adp-soltar .recruiting-drop-icon { color: #0369a1; background: #e0f2fe; }
.adp-soltar:hover { border-color: #7dd3fc; background: #f5fbff; }
.adp-soltar.is-over { border-color: #0284c7; background: #e0f2fe; }
.adp-error { margin: 0; color: #b91c1c; font-size: .71rem; }
.adp-error:empty { display: none; }

@media (max-width: 1100px) {
  .adp-fila {
    grid-template-columns: 38px minmax(0, 1fr) auto;
    grid-template-areas:
      "avatar quien estado"
      "avatar datos datos";
    row-gap: 8px;
  }
  .adp-fila > .adp-avatar { grid-area: avatar; align-self: start; }
  .adp-fila > .adp-quien { grid-area: quien; }
  .adp-fila > .adp-estado { grid-area: estado; justify-self: end; }
  .adp-fila > .adp-dato,
  .adp-fila > .adp-evidencia,
  .adp-fila > .adp-accion { display: none; }
  .adp-fila > .adp-dato.is-cuando { display: grid; grid-area: datos; }
}
@media (max-width: 720px) {
  .adp-resumen { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .adp-modal-head { align-items: flex-start; }
  .adp-resultado,
  .adp-campos { grid-template-columns: minmax(0, 1fr); }
  .adp-controles { width: 100%; }
  .adp-buscar,
  .adp-persona { width: 100%; }
  .adp-historial { grid-template-columns: 34px minmax(0, 1fr); }
  .adp-historial .adp-traer { grid-column: 1 / -1; justify-self: start; }
}
/* En un telefono la ventana sube desde abajo y ocupa el ancho, como las de
   Reclutamiento: su ancho propio no puede ganarle a eso. */
@media (max-width: 560px) {
  .adp-modal { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .adp-fila,
  .adp-opcion,
  .adp-opcion-icono,
  .adp-mas,
  button.adp-cifra { transition: none; }
  .adp-traer .is-girando { animation: none; }
}
