diff --git a/resources/js/components/branding/logo-crop-dialog.tsx b/resources/js/components/branding/logo-crop-dialog.tsx
index e305c9bc..f37a4603 100644
--- a/resources/js/components/branding/logo-crop-dialog.tsx
+++ b/resources/js/components/branding/logo-crop-dialog.tsx
@@ -108,15 +108,20 @@ export default function LogoCropDialog({ open, onOpenChange, sourceUrl, savedCro
-
-
setCrop(percent)} keepSelection minWidth={8} minHeight={8}>
-
onImageLoad(e.currentTarget)}
- style={{ imageOrientation: 'none' }}
- className="max-h-[56vh] max-w-full"
- />
+
+ {/* The height limit goes on the crop wrapper: the library's
+ stylesheet gives the image `max-height: inherit`, so a
+ limit on the image itself is overridden, and a tall logo
+ would push the bottom handles out of reach. */}
+
setCrop(percent)}
+ keepSelection
+ minWidth={8}
+ minHeight={8}
+ style={{ maxHeight: '56vh' }}
+ >
+
onImageLoad(e.currentTarget)} style={{ imageOrientation: 'none' }} />