/* ==========================================================================
   LeadSync — Ajustes del bot: con qué modelo trabaja cada tarea (item U7)

   OJO CON EL ORDEN: estos ficheros se enlazan en index.html en un orden concreto
   y ese orden ES la cascada. Si añades uno nuevo, ponlo donde le toque.
   ========================================================================== */

.ab-intro {
  margin: 0 0 20px;
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--text-dim);
  max-width: 68ch;
}

.ab-tarea {
  margin: 0 0 16px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg-panel);
}

.ab-cab {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}
.ab-cab h3 {
  margin: 0 0 4px;
  font-size: 15px;
}
.ab-ayuda {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-dim);
  max-width: 62ch;
}

/* La etiqueta de ORIGEN. Los tres se ven distintos a proposito: quien lo eligio
   aqui puede deshacerlo desde aqui; lo que viene del servidor no, y saberlo
   antes de buscar el boton ahorra el viaje. */
.ab-origen {
  flex: 0 0 auto;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .02em;
  white-space: nowrap;
  cursor: help;
}
.ab-org-consola {
  color: var(--accent);
  background: color-mix(in srgb, var(--accent) 14%, transparent);
}
.ab-org-entorno {
  color: var(--warn);
  background: color-mix(in srgb, var(--warn) 14%, transparent);
}
.ab-org-defecto {
  color: var(--text-dim);
  background: var(--bg-hover);
}

/* La fila de "ahora mismo": el id literal y sus rasgos. */
.ab-actual {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  padding: 10px 12px;
  margin-bottom: 14px;
  border-radius: 8px;
  background: var(--bg-elev);
}
.ab-actual-lab {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--text-dim);
}
/* EL ID VA EN MONOESPACIADA porque es un identificador que se copia y se teclea,
   no una etiqueta que se lee: la "l" y la "1" tienen que distinguirse. */
.ab-modelo {
  font-family: ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;
  font-size: 12.5px;
  color: var(--text);
}
.ab-fuera {
  font-size: 11.5px;
  color: var(--warn);
}

.ab-rasgos {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-left: auto;
}
.ab-rasgo {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11.5px;
  color: var(--text-dim);
}
.ab-rasgo .ic {
  width: 13px;
  height: 13px;
}
/* SIN HERRAMIENTAS SE PINTA EN ROJO Y NO EN GRIS: es el unico rasgo que puede
   dejar al bot sin poder cotizar, y en gris se lee como un detalle mas. */
.ab-rasgo.si { color: var(--accent); }
.ab-rasgo.no { color: var(--danger); }
.ab-rasgo.precio {
  font-family: ui-monospace, "SF Mono", Consolas, monospace;
  font-size: 11px;
}

.ab-campo {
  display: block;
  margin-bottom: 12px;
}
.ab-label {
  display: block;
  margin-bottom: 5px;
  font-size: 12.5px;
  font-weight: 600;
}
.ab-select,
.ab-in {
  width: 100%;
  max-width: 560px;
  height: 38px;
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg-elev);
  color: var(--text);
  font-size: 13px;
}
.ab-in {
  font-family: ui-monospace, "SF Mono", Consolas, monospace;
}
.ab-select:focus-visible,
.ab-in:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -1px;
}
.ab-pista {
  display: block;
  margin-top: 5px;
  font-size: 11.5px;
  line-height: 1.5;
  color: var(--text-dim);
  max-width: 62ch;
}

/* EL CAMPO LIBRE APARECE, no estaba y se enciende: el movimiento explica que ha
   salido algo nuevo al elegir "Otro". Sin `fill-mode`, asi que si la animacion
   no llega a correr el campo se queda en su estado natural (visible) y no
   invisible para siempre. */
.ab-libre {
  animation: abLibreEntra 160ms ease-out;
}
@keyframes abLibreEntra {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .ab-libre { animation: none; }
}

.ab-acts {
  display: flex;
  align-items: center;
  gap: 12px;
}

.ab-pie {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 20px 0 0;
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--text-dim);
  max-width: 76ch;
}
.ab-pie .ic {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  margin-top: 2px;
}

.ab-cargando,
.ab-vacio {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 20px;
  color: var(--text-dim);
  font-size: 13px;
}
.ab-vacio p {
  margin: 0;
  max-width: 62ch;
  line-height: 1.6;
}
.ab-cargando .ic {
  animation: spin 1s linear infinite;
}

/* En una pantalla estrecha la cabecera se apila: el titulo y la etiqueta de
   origen uno debajo del otro se leen; apretados en una fila, no. */
@media (max-width: 720px) {
  .ab-cab {
    flex-direction: column;
    gap: 8px;
  }
  .ab-rasgos { margin-left: 0; }
}
