+
+ {/* Week navigation */}
+
+
+
+ {weekLabel}
+
+
+
+
+
Planlegg uken
+
+ {loading ? (
+
+ ) : (
+ <>
+ {/* Projected coverage */}
+
Projisert dekning
+
+
+ {sessionCount} {sessionCount === 1 ? "økt" : "økter"} · {muscleGroupCount} muskelgrupper
+
+
+ {/* Body map */}
+ {isMobile ? (
+
+
+ {["front", "back"].map(v => (
+
+ ))}
+
+
+
+
+
+ ) : (
+
+ {["front", "back"].map(view => (
+
+
+
+ ))}
+
+ )}
+
+ {hoveredMuscle && projectedData.muscleMap[hoveredMuscle]?.length > 0 && (
+
+ {MUSCLES[hoveredMuscle]?.label}:{" "}
+ {projectedData.muscleMap[hoveredMuscle].join(", ")}
+
+ )}
+
+ {/* Forslag card */}
+ {showForslag && (
+
+
+ {untrainedMuscleIds.length} muskelgrupper er ikke dekket denne uken
+
+
0 ? 10 : 0 }}>
+ {untrainedMuscleIds.map(id => (
+
{MUSCLES[id]?.label || id}
+ ))}
+
+ {forslagTemplates.length > 0 && (
+ <>
+
+ Maler som dekker disse:
+
+
+ {forslagTemplates.map(tpl => (
+
+ · {tpl.name}
+
+ ))}
+
+ >
+ )}
+
+ )}
+
+ {/* Week plan */}
+
Ukesplan
+
+ {saveError && (
+
+ )}
+
+
+ {Array.from({ length: 7 }, (_, i) => i + 1).map(dow => (
+
+ ))}
+
+
+ {/* Confirm delete strip */}
+ {confirmDelete && (
+
+
+ Fjerne hele ukeplanen?
+
+
+
+
+
+
+ )}
+ >
+ )}
+
+
+ {/* Sticky action bar */}
+ {!loading && (
+