diff --git a/app/static/cookbook.css b/app/static/cookbook.css
index ecbc44c..9654a6e 100755
--- a/app/static/cookbook.css
+++ b/app/static/cookbook.css
@@ -633,11 +633,41 @@
margin: 0 0 12px 0;
display: flex;
align-items: center;
+ justify-content: space-between;
gap: 8px;
border-bottom: 1.5px solid var(--altrosa);
padding-bottom: 4px;
}
+.cb-reset-checks-btn {
+ display: inline-flex;
+ align-items: center;
+ gap: 4px;
+ background: rgba(30, 77, 59, 0.05);
+ border: 1px dashed rgba(30, 77, 59, 0.35);
+ color: var(--tannengruen);
+ font-family: var(--font-hand);
+ font-size: 0.92rem;
+ font-weight: 600;
+ padding: 2px 9px;
+ border-radius: 12px;
+ cursor: pointer;
+ transition: all 0.2s ease;
+ line-height: 1;
+ user-select: none;
+ -webkit-tap-highlight-color: transparent;
+}
+
+.cb-reset-checks-btn:hover {
+ background: rgba(30, 77, 59, 0.12);
+ border-color: var(--tannengruen);
+ border-style: solid;
+}
+
+.cb-reset-checks-btn:active {
+ transform: scale(0.96);
+}
+
.ingredients-list {
list-style: none;
padding: 0;
@@ -2572,6 +2602,21 @@ body.cook-mode-on .cookmode-text-box .cookmode-status-text {
background: rgba(34, 34, 34, 0.04);
}
+.matrix-row {
+ cursor: pointer;
+ transition: background 0.15s ease;
+}
+
+.matrix-row:hover {
+ background: rgba(30, 77, 59, 0.05);
+}
+
+.matrix-row.is-checked td {
+ text-decoration: line-through;
+ opacity: 0.45;
+ color: #777;
+}
+
/* Interactive step completion in cook mode */
.step-card {
cursor: pointer;
@@ -2740,6 +2785,7 @@ body.cook-mode-on .cookmode-text-box .cookmode-status-text {
.cookmode-toggle-btn,
.cb-nav-cookmode-btn,
.cb-mobile-cookmode-item,
+ .cb-reset-checks-btn,
.recipe-cookmode-banner,
.step-done-check,
.no-print {
diff --git a/app/templates/recipe_detail.html b/app/templates/recipe_detail.html
index 90929ba..7b9d652 100755
--- a/app/templates/recipe_detail.html
+++ b/app/templates/recipe_detail.html
@@ -60,6 +60,9 @@
Aus
+
{% if not is_shared %}