/* Pantalla de Tareas y de Programación (Fase 17, Bloques C y D).
   Sobre los mismos tokens y componentes que el resto de la aplicación (.amaq-card, .amaq-btn,
   .amaq-badge): nada de una paleta paralela. */

.jobs-table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); }
.jobs-table th {
  text-align: left;
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-tertiary);
  padding: var(--space-3) var(--space-4);
  border-bottom: var(--border-width-thin) solid var(--border-default);
  white-space: nowrap;
}
.jobs-table td {
  padding: var(--space-4);
  border-bottom: var(--border-width-thin) solid var(--border-default);
  vertical-align: top;
  color: var(--text-secondary);
}
.jobs-table tr:last-child td { border-bottom: none; }
.jobs-table .job-title { color: var(--text-primary); font-weight: 600; }
.jobs-table .job-meta { font-size: var(--text-xs); color: var(--text-tertiary); }

.job-progress-track {
  width: 100%;
  min-width: 140px;
  height: 8px;
  border-radius: 4px;
  background: var(--surface-overlay);
  overflow: hidden;
}
.job-progress-fill {
  height: 100%;
  background: var(--color-navy-500);
  border-radius: 4px;
  transition: width 0.4s ease;
}
.job-progress-label { font-size: var(--text-xs); color: var(--text-tertiary); margin-top: 4px; }

/* Estado en ejecución: barra a rayas en movimiento sólo cuando aún no hay progreso medible
   (el trabajo arrancó pero no ha terminado su primera máquina). Nunca se dibuja un porcentaje
   inventado -- si el servidor no sabe cuánto lleva, la pantalla lo dice con palabras. */
.job-progress-fill.indeterminate {
  width: 100%;
  background: repeating-linear-gradient(
    90deg,
    var(--color-navy-300) 0 12px,
    var(--color-navy-100) 12px 24px
  );
  animation: job-stripes 1.2s linear infinite;
}
@keyframes job-stripes { to { background-position: 24px 0; } }
@media (prefers-reduced-motion: reduce) {
  .job-progress-fill.indeterminate { animation: none; }
}

.job-warnings {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-top: var(--space-3);
}
.job-warnings li {
  padding: var(--space-3) var(--space-4);
  background: var(--color-warning-bg);
  color: var(--color-warning-text);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
}

.job-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--space-5);
}

.job-actions { display: flex; gap: var(--space-3); flex-wrap: wrap; margin-top: var(--space-5); }

/* ── Programación ────────────────────────────────────────────────────────── */

.schedule-weekdays { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.schedule-weekdays label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: var(--space-2) var(--space-4);
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  color: var(--text-secondary);
  text-transform: none;
  letter-spacing: normal;
  cursor: pointer;
}

.schedule-next {
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-md);
  background: var(--color-info-bg, var(--surface-overlay));
  color: var(--text-secondary);
  font-size: var(--text-sm);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.schedule-machines {
  max-height: 320px;
  overflow-y: auto;
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-md);
  padding: var(--space-4);
}
.schedule-plant { margin-bottom: var(--space-4); }
.schedule-plant-name {
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-tertiary);
  margin-bottom: var(--space-2);
}
.schedule-machine {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 3px 0;
  font-size: var(--text-sm);
  color: var(--text-secondary);
}
