Ingredients
{{ recipe.matched_ingredients.length }} ✓
{{ recipe.missing_ingredients.length }} needed
From your pantry
-
✓
{{ scaleIngredient(ing, servingScale) }}
Active
{{ formatDetailMin(recipe.time_effort.active_min) }}
Hands-off
{{ formatDetailMin(recipe.time_effort.passive_min) }}
Total
{{ formatDetailMin(recipe.time_effort.total_min) }}
{{ recipe.time_effort.effort_label }}
{{ EQUIPMENT_ICONS[eq] ?? '🍴' }} {{ eq }}
Possible swaps ({{ recipe.swap_candidates.length }})
{{ swap.original_name }}
→
{{ swap.substitute_name }}
{{ swap.constraint_label }}
{{ swap.explanation }}
Nutrition
🔥 {{ Math.round(recipe.nutrition.calories) }} kcal
🧈 {{ recipe.nutrition.fat_g.toFixed(1) }}g fat
💪 {{ recipe.nutrition.protein_g.toFixed(1) }}g protein
🌾 {{ recipe.nutrition.carbs_g.toFixed(1) }}g carbs
🌿 {{ recipe.nutrition.fiber_g.toFixed(1) }}g fiber
🍬 {{ recipe.nutrition.sugar_g.toFixed(1) }}g sugar
🧂 {{ Math.round(recipe.nutrition.sodium_mg) }}mg sodium
🍽️ {{ recipe.nutrition.servings }} serving{{ recipe.nutrition.servings !== 1 ? 's' : '' }}
~ estimated
Steps ({{ recipe.directions.length }})
-
Wait
Active
{{ step }}
{{ passiveHint(stepAnalysis(i)) }}
STEP {{ cookStep + 1 }}
{{ currentStepAnalysis.is_passive ? 'Wait' : 'Active' }}
{{ recipe.directions[cookStep] }}
~{{ currentStepAnalysis.detected_minutes }} min hands-off