# Reglas de cálculo

CalcuPet usa fórmulas orientativas para perros y gatos adultos. Los resultados
no sustituyen una consulta veterinaria ni contemplan embarazo, lactancia,
crecimiento, enfermedades o dietas terapéuticas.

## Entradas

- Especie: perro o gato.
- Peso actual en kilogramos.
- Edad en años.
- Nivel de actividad: bajo, normal o alto.
- Objetivo: bajar, mantener o subir peso.
- Esterilización: sí o no.
- Tipo de alimento: seco, húmedo o mixto; selecciona una referencia energética inicial editable.
- Energía Metabolizable en kcal/kg: inicia en 3500 para Seco, cambia a 1000 para Húmedo y a 2250 para Mixto.
- Condición corporal opcional: nivel visual del 1 al 5; si no se selecciona, se asume nivel 3 (ideal).

## Formulas

- Calorías de reposo: `RER = 70 * pesoKg ^ 0.75`.
- Calorías diarias: `MER = RER * factorEsterilizacion * factorActividad * factorObjetivo * factorSenior`.
- Conversión de energía: `kcalPorGramo = energiaMetabolizableKcalKg / 1000`.
- Alimento diario: `gramosDiarios = caloriasDiarias / kcalPorGramo`.
- Agua diaria: `pesoKg * 55`, como punto medio práctico entre 50 y 60 ml/kg/día.
- Premios máximos: `caloriasDiarias * 0.10`.
- Peso ideal: rango porcentual orientativo según objetivo.
- Condición corporal (BCS): aporta contexto educativo al resultado y no modifica calorías, multiplicadores ni otras estimaciones.

## Limites

- Peso minimo: 1 kg.
- Peso máximo: 120 kg en perros y 18 kg en gatos.
- Edad mínima: 0.1 años.
- Edad máxima: 25 años en perros y 30 años en gatos.
- Energía Metabolizable mínima: 100 kcal/kg.
- Energía Metabolizable máxima: 10.000 kcal/kg.
- El cálculo aplica `clamp` interno a peso y edad como protección defensiva,
  pero la validación visible sigue bloqueando valores inválidos antes de calcular.
- Los valores 3500, 1000 y 2250 kcal/kg son referencias iniciales editables: no sustituyen la energía real del fabricante, no son constantes obligatorias de la fórmula ni actúan como respaldo silencioso.
- Si el usuario borra la Energía Metabolizable o introduce un valor inválido, el cálculo se bloquea y la referencia no se restaura automáticamente.

## Tipo de estimación

La clasificación depende de la procedencia del dato. Al iniciar o cambiar el tipo de alimento, el sistema carga su referencia y la marca como sugerida. Cualquier evento `input` en el campo la marca como específica y conserva el contenido mientras el tipo no cambie; por ello, escribir manualmente el mismo número sugerido continúa siendo una entrada específica. Un cambio posterior de tipo reemplaza el contenido con la nueva referencia y restablece el estado sugerido.

Esta clasificación solo modifica las notas mutuamente excluyentes del resultado y del resumen copiable. La fórmula de conversión recibe siempre el valor numérico actual del campo.

## Alimentación mixta

La opción «Mixto» contextualiza el resultado, pero calcula únicamente el producto cuya energía se ingresó. Su referencia inicial de 2250 kcal/kg es un promedio orientativo, no una suma ni una combinación exacta entre seco y húmedo. Debe usarse la energía real del producto que se esté calculando. CalcuPet no suma dos productos ni distribuye automáticamente las calorías entre alimento seco y húmedo en esta versión.

Los rangos mostrados en la ayuda del formulario son educativos y nunca se utilizan como valores predeterminados. La cantidad final se presenta en gramos por día tanto para alimento seco como húmedo.
