diff --git a/apps/web/src/components/swipeable-row.tsx b/apps/web/src/components/swipeable-row.tsx
index 04d3723..cebe10d 100644
--- a/apps/web/src/components/swipeable-row.tsx
+++ b/apps/web/src/components/swipeable-row.tsx
@@ -150,6 +150,14 @@ export function SwipeableRow({
onPointerMove={handlePointerMove}
onPointerUp={handlePointerUp}
onPointerCancel={handlePointerUp}
+ // Anchors (and ) are natively draggable. When children
+ // contain a wrapping the card, the browser hijacks the
+ // pointer for a "drag link" operation as soon as the user
+ // moves horizontally, so the swipe gesture never reaches our
+ // pointer handlers. Suppress native drag here once and the
+ // whole row body is unblocked.
+ onDragStart={(e) => e.preventDefault()}
+ draggable={false}
style={{
transform: `translateX(${offset}px)`,
transition: dragging ? "none" : "transform 200ms ease-out",