{
  "routine": {
    "title": "Min-Max 4x D1 — Full Body (W5)",
    "notes": "W5 D1 — Sáb 6 Jun. Progresión agresiva. W4 reales: LegCurl 45×8@7 / 60×8@9.5; Squat 30×8@9.5 / 32.5×6@9.5; IncBench 30×10@9 / 35×5@10 (FALLÓ S2 — corregir); YRaise 5×8@10; LatPull 45×8@8 / 55×6@10; Calf 120×10@9.5. Foco: S2 IncBench baja a 32.5 para entrar 6-8 rango. Squat S2 push 8 reps. Calistenia estable.",
    "exercises": [
      {
        "exercise_template_id": "79EF4E4F",
        "notes": "W5: 5-10 min cardio liviano. Elíptica o caminata. No te agotes.",
        "rest_seconds": 0,
        "sets": [
          {
            "type": "normal",
            "weight_kg": null,
            "duration_seconds": 600,
            "custom_metric": null
          }
        ]
      },
      {
        "exercise_template_id": "B8127AD1",
        "notes": "W5: S1 +2.5 a 50 (W4 45×8@7 RIR 2). S2 +2.5 a 62.5 (W4 60×8@9.5 RIR 0.5). Cadera pegada, negativa 2s. Si S2 @≤9.5 limpio, mantener.",
        "rest_seconds": 90,
        "sets": [
          {
            "type": "warmup",
            "weight_kg": 30,
            "rep_range": { "start": 10, "end": null },
            "custom_metric": null
          },
          {
            "type": "normal",
            "weight_kg": 50,
            "rep_range": { "start": 6, "end": 8 },
            "custom_metric": null
          },
          {
            "type": "normal",
            "weight_kg": 62.5,
            "rep_range": { "start": 6, "end": 8 },
            "custom_metric": null
          }
        ]
      },
      {
        "exercise_template_id": "DDCC3821",
        "notes": "W5: Sostener 30/32.5 (W4 S2 32.5×6@9.5 — no llegó a 8). Prioridad = 8 reps limpios en S2, no subir carga. Si S2 sale 8@≤9.5, próxima W6 a 35. Profundidad completa Smith.",
        "rest_seconds": 210,
        "sets": [
          {
            "type": "warmup",
            "weight_kg": 15,
            "rep_range": { "start": 10, "end": null },
            "custom_metric": null
          },
          {
            "type": "warmup",
            "weight_kg": 17.5,
            "rep_range": { "start": 10, "end": null },
            "custom_metric": null
          },
          {
            "type": "normal",
            "weight_kg": 30,
            "rep_range": { "start": 8, "end": 8 },
            "custom_metric": null
          },
          {
            "type": "normal",
            "weight_kg": 32.5,
            "rep_range": { "start": 8, "end": 8 },
            "custom_metric": null
          }
        ]
      },
      {
        "exercise_template_id": "50DFDFAB",
        "notes": "W5: S1 +2.5 a 32.5 (W4 30×10@9 RIR 1, hay buffer). S2 BAJA a 32.5 (W4 35×5@10 falló — fuera de rango 6-8). Mismo peso ambos sets, push 6-8 limpio. Pausa 1s abajo.",
        "rest_seconds": 210,
        "sets": [
          {
            "type": "warmup",
            "weight_kg": 22.5,
            "rep_range": { "start": 8, "end": null },
            "custom_metric": null
          },
          {
            "type": "warmup",
            "weight_kg": 25,
            "rep_range": { "start": 8, "end": null },
            "custom_metric": null
          },
          {
            "type": "normal",
            "weight_kg": 32.5,
            "rep_range": { "start": 6, "end": 8 },
            "custom_metric": null
          },
          {
            "type": "normal",
            "weight_kg": 32.5,
            "rep_range": { "start": 6, "end": 8 },
            "custom_metric": null
          }
        ]
      },
      {
        "exercise_template_id": "afbbf3e8-66d9-4622-8b2e-55dfcdab16f1",
        "notes": "W5: Sostener 5kg. W4 5×8@10 (RIR 0). Push para 10 reps limpios este sábado. Si llegas a 10 @≤9.5, próxima 7.5kg.",
        "rest_seconds": 90,
        "sets": [
          {
            "type": "warmup",
            "weight_kg": 5,
            "rep_range": { "start": 5, "end": null },
            "custom_metric": null
          },
          {
            "type": "normal",
            "weight_kg": 5,
            "rep_range": { "start": 8, "end": 10 },
            "custom_metric": null
          }
        ]
      },
      {
        "exercise_template_id": "6A6C31A5",
        "notes": "W5: S1 +2.5 a 47.5 (W4 45×8@8 RIR 2). S2 sostiene 55, target 8 reps (W4 55×6@10 falló). Si S2=8 @≤9.5, próxima subimos a 57.5. Controlar negativa 2s.",
        "rest_seconds": 150,
        "sets": [
          {
            "type": "warmup",
            "weight_kg": 35,
            "rep_range": { "start": 10, "end": null },
            "custom_metric": null
          },
          {
            "type": "normal",
            "weight_kg": 47.5,
            "rep_range": { "start": 6, "end": 8 },
            "custom_metric": null
          },
          {
            "type": "normal",
            "weight_kg": 55,
            "rep_range": { "start": 8, "end": 8 },
            "custom_metric": null
          }
        ]
      },
      {
        "exercise_template_id": "91237BDD",
        "notes": "W5: +5 a 125 (W4 120×10@9.5 RIR 0.5). Target 10-12 reps. Pausa 1s abajo, push completo arriba.",
        "rest_seconds": 90,
        "sets": [
          {
            "type": "warmup",
            "weight_kg": 80,
            "rep_range": { "start": 10, "end": null },
            "custom_metric": null
          },
          {
            "type": "normal",
            "weight_kg": 125,
            "rep_range": { "start": 10, "end": 12 },
            "custom_metric": null
          }
        ]
      },
      {
        "exercise_template_id": "98237BA2",
        "notes": "W5: 2 work sets 10-12 controlado. W4 S3 cayó a 7. Si S1=12 limpio, S2 ir a 12. Cortar si lumbar molesta.",
        "rest_seconds": 90,
        "sets": [
          {
            "type": "warmup",
            "weight_kg": null,
            "rep_range": { "start": 12, "end": null },
            "custom_metric": null
          },
          {
            "type": "normal",
            "weight_kg": null,
            "rep_range": { "start": 10, "end": 12 },
            "custom_metric": null
          },
          {
            "type": "normal",
            "weight_kg": null,
            "rep_range": { "start": 10, "end": 12 },
            "custom_metric": null
          }
        ]
      }
    ]
  }
}
