diff --git a/src/components/CardSearch.tsx b/src/components/CardSearch.tsx
index 41a57f5..66269e8 100644
--- a/src/components/CardSearch.tsx
+++ b/src/components/CardSearch.tsx
@@ -617,79 +617,147 @@ const CardSearch = () => {
)}
{searchResults && searchResults.length > 0 && (
-
- {searchResults.map((card) => {
- const currentFaceIndex = getCurrentFaceIndex(card.id);
- const isMultiFaced = isDoubleFaced(card);
- const inCollection = userCollection.get(card.id) || 0;
- const isAddingThisCard = addingCardId === card.id;
+ <>
+ {/* Mobile: Horizontal list layout */}
+
+ {searchResults.map((card) => {
+ const currentFaceIndex = getCurrentFaceIndex(card.id);
+ const isMultiFaced = isDoubleFaced(card);
+ const inCollection = userCollection.get(card.id) || 0;
+ const isAddingThisCard = addingCardId === card.id;
- const displayName = isMultiFaced && card.card_faces
- ? card.card_faces[currentFaceIndex]?.name || card.name
- : card.name;
+ const displayName = isMultiFaced && card.card_faces
+ ? card.card_faces[currentFaceIndex]?.name || card.name
+ : card.name;
- return (
-
-
- {getCardImageUri(card, currentFaceIndex) ? (
+ return (
+
+ {/* Card image */}
+

- ) : (
-
- )}
- {isMultiFaced && (
-
- )}
- {inCollection > 0 && (
-
-
- x{inCollection}
-
- )}
-
-
-
{displayName}
-
- {isMultiFaced && card.card_faces
- ? card.card_faces[currentFaceIndex]?.type_line || card.type_line
- : card.type_line}
-
- {card.prices?.usd && (
-
${card.prices.usd}
- )}
-
+
+ {/* Info */}
+
+
{displayName}
+
+ {card.prices?.usd && ${card.prices.usd}}
+ {inCollection > 0 && (
+
+
+ x{inCollection}
+
+ )}
+
+
+ {/* Action button */}
+
+
handleAddCardToCollection(card.id)}
+ disabled={isAddingThisCard}
+ className="p-2.5 bg-green-600 active:bg-green-700 disabled:bg-gray-600 rounded-lg"
+ title="Add to collection"
+ >
+ {isAddingThisCard ? (
+
+ ) : (
+
+ )}
+
+
-
- );
- })}
-
+ );
+ })}
+
+
+ {/* Desktop: Grid layout */}
+
+ {searchResults.map((card) => {
+ const currentFaceIndex = getCurrentFaceIndex(card.id);
+ const isMultiFaced = isDoubleFaced(card);
+ const inCollection = userCollection.get(card.id) || 0;
+ const isAddingThisCard = addingCardId === card.id;
+
+ const displayName = isMultiFaced && card.card_faces
+ ? card.card_faces[currentFaceIndex]?.name || card.name
+ : card.name;
+
+ return (
+
+
+ {getCardImageUri(card, currentFaceIndex) ? (
+

+ ) : (
+
+ )}
+ {isMultiFaced && (
+
{
+ e.stopPropagation();
+ toggleCardFace(card.id, card.card_faces!.length);
+ }}
+ className="absolute bottom-2 right-2 bg-purple-600 hover:bg-purple-700 text-white p-2 rounded-full shadow-lg transition-all"
+ title="Flip card"
+ >
+
+
+ )}
+ {inCollection > 0 && (
+
+
+ x{inCollection}
+
+ )}
+
+
+
{displayName}
+
+ {isMultiFaced && card.card_faces
+ ? card.card_faces[currentFaceIndex]?.type_line || card.type_line
+ : card.type_line}
+
+ {card.prices?.usd && (
+
${card.prices.usd}
+ )}
+
handleAddCardToCollection(card.id)}
+ disabled={isAddingThisCard}
+ className="w-full px-3 py-2 bg-green-600 hover:bg-green-700 disabled:bg-gray-600 disabled:cursor-not-allowed rounded-lg flex items-center justify-center gap-2 text-sm"
+ title="Add to collection"
+ >
+ {isAddingThisCard ? (
+
+ ) : (
+ <>
+
+ Add
+ >
+ )}
+
+
+
+ );
+ })}
+
+ >
)}