diff --git a/src/ASTRAIN.Client/Pages/Routines.razor b/src/ASTRAIN.Client/Pages/Routines.razor
index e96891b..f23f10d 100644
--- a/src/ASTRAIN.Client/Pages/Routines.razor
+++ b/src/ASTRAIN.Client/Pages/Routines.razor
@@ -36,10 +36,11 @@
@foreach (var exercise in ExerciseList)
{
-
+ var isSelected = SelectedExerciseIds.Contains(exercise.Id);
+
ToggleExercise(exercise.Id)">
+
@exercise.Name
+
✓
+
}
@@ -91,10 +92,11 @@
@foreach (var exercise in ExerciseList)
{
-
+ var isSelected = EditingExerciseIds.Contains(exercise.Id);
+
ToggleEditExercise(exercise.Id)">
+
@exercise.Name
+
✓
+
}
diff --git a/src/ASTRAIN.Client/wwwroot/css/app.css b/src/ASTRAIN.Client/wwwroot/css/app.css
index a402999..af2220f 100644
--- a/src/ASTRAIN.Client/wwwroot/css/app.css
+++ b/src/ASTRAIN.Client/wwwroot/css/app.css
@@ -139,6 +139,36 @@ p {
border-color: #1f6b38;
}
+.list-item.selectable {
+ cursor: pointer;
+}
+
+.list-item.selected {
+ background: #10331a;
+ border-color: #1f6b38;
+}
+
+.check-icon {
+ width: 26px;
+ height: 26px;
+ border-radius: 999px;
+ border: 1px solid #2a2a2a;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ font-weight: 700;
+ color: #ffffff;
+ opacity: 0;
+ transform: scale(0.85);
+ transition: opacity 0.15s ease, transform 0.15s ease, border-color 0.15s ease;
+}
+
+.check-icon.visible {
+ opacity: 1;
+ transform: scale(1);
+ border-color: #1f6b38;
+}
+
.item-title {
font-weight: 600;
}