diff --git a/frontend/src/components/MedDetailModal.tsx b/frontend/src/components/MedDetailModal.tsx
index 637be46..f67b5a5 100644
--- a/frontend/src/components/MedDetailModal.tsx
+++ b/frontend/src/components/MedDetailModal.tsx
@@ -626,7 +626,7 @@ export function MedDetailModal({
+ {/* Intake Schedule Section */}
+ {selectedMed.blisters.length > 0 && (
+
+
+ {t("modal.intakeSchedule")}{" "}
+ {selectedMed.intakeRemindersEnabled && (
+
+
+
+ )}
+
+
+ {selectedMed.blisters.map((blister, idx) => {
+ // When using new intakes format with per-intake takenBy,
+ // each intake already represents one person's dose — don't multiply.
+ // For legacy intakes (no per-intake takenBy), multiply by personCount.
+ const intake = selectedMed.intakes?.[idx];
+ const hasPerIntakeTakenBy = !!intake?.takenBy;
+ const personCount = hasPerIntakeTakenBy ? 1 : Math.max(1, selectedMed.takenBy?.length || 1);
+ const totalUsage = blister.usage * personCount;
+ return (
+
+
+ {totalUsage} {totalUsage !== 1 ? t("common.pills") : t("common.pill")}
+ {selectedMed.pillWeightMg &&
+ ` (${totalUsage * selectedMed.pillWeightMg} ${selectedMed.doseUnit ?? "mg"})`}
+
+
+ {blister.every === 1 ? t("common.daily") : t("common.everyNDays", { count: blister.every })}
+
+ {hasPerIntakeTakenBy && intake.takenBy && (
+ {intake.takenBy}
+ )}
+ {intake?.intakeRemindersEnabled && (
+
+
+
+ )}
+
+ {t("modal.at")}{" "}
+ {new Date(blister.start).toLocaleTimeString(getSystemLocale(i18n.language), {
+ hour: "2-digit",
+ minute: "2-digit",
+ })}
+
+
+ );
+ })}
+
+
+ )}
+
{/* Prescription Details Section */}
{selectedMed.prescriptionEnabled && (
@@ -839,50 +891,6 @@ export function MedDetailModal({
)}
- {/* Intake Schedule Section */}
- {selectedMed.blisters.length > 0 && (
-
-
- {t("modal.intakeSchedule")}{" "}
- {selectedMed.intakeRemindersEnabled && (
-
-
-
- )}
-
-
- {selectedMed.blisters.map((blister, idx) => {
- // When using new intakes format with per-intake takenBy,
- // each intake already represents one person's dose — don't multiply.
- // For legacy intakes (no per-intake takenBy), multiply by personCount.
- const intake = selectedMed.intakes?.[idx];
- const hasPerIntakeTakenBy = !!intake?.takenBy;
- const personCount = hasPerIntakeTakenBy ? 1 : Math.max(1, selectedMed.takenBy?.length || 1);
- const totalUsage = blister.usage * personCount;
- return (
-
-
- {totalUsage} {totalUsage !== 1 ? t("common.pills") : t("common.pill")}
- {selectedMed.pillWeightMg &&
- ` (${totalUsage * selectedMed.pillWeightMg} ${selectedMed.doseUnit ?? "mg"})`}
-
-
- {blister.every === 1 ? t("common.daily") : t("common.everyNDays", { count: blister.every })}
-
-
- {t("modal.at")}{" "}
- {new Date(blister.start).toLocaleTimeString(getSystemLocale(i18n.language), {
- hour: "2-digit",
- minute: "2-digit",
- })}
-
-
- );
- })}
-
-
- )}
-
{/* Coverage Status Section */}
{medCoverage && status && (
@@ -909,10 +917,10 @@ export function MedDetailModal({
{selectedMed.notes && (
+ {t("modal.notes")}{" "}
- {" "}
- {t("modal.notes")}
+
{selectedMed.notes}
@@ -1111,7 +1119,7 @@ export function MedDetailModal({