diff --git a/static/app.js b/static/app.js
index 332860d..d0d578c 100644
--- a/static/app.js
+++ b/static/app.js
@@ -300,7 +300,7 @@ function renderProjectTasks(projectId) {
${phases.map((phase) => {
const pt = tasks.filter((t) => t.phase === phase);
if (!pt.length) return "";
- return `
${phase}${pt.length}
${pt.map((t) => `
${t.task}${t.notes ? `${t.notes}` : ""}${t.blockers ? `⚠ ${t.blockers}` : ""}
${t.owner || ""}${t.due_date || ""}`).join("")}
`;
+ return `${phase}${pt.length}
${pt.map((t) => `
${t.task}${t.notes ? `${t.notes}` : ""}${t.blockers ? `⚠ ${t.blockers}` : ""}
${t.owner || ""}${t.due_date || ""}`).join("")}
`;
}).join("")}
diff --git a/static/styles.css b/static/styles.css
index e6f942e..816ccdd 100644
--- a/static/styles.css
+++ b/static/styles.css
@@ -554,6 +554,9 @@ td {
.task-row:hover { background: #f8fafc; }
.task-dot { display: flex; color: #cbd5e1; flex-shrink: 0; cursor: pointer; }
.task-dot:hover { color: #6366f1; }
+.task-grip { display: flex; color: #cbd5e1; flex-shrink: 0; cursor: grab; }
+.task-grip:hover { color: #94a3b8; }
+.task-grip:active { cursor: grabbing; }
.task-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.task-name { color: #1e293b; font-size: 13px; }
.task-desc { color: #94a3b8; font-size: 12px; word-wrap: break-word; overflow-wrap: break-word; }