Personal Identity Verification
Please upload clear photos of both sides of your government‑issued ID
{/* Grid Fields: put all three inputs on the same line on md+ */}
{/* Back side toggle */}
Does ID have a Backside?
{hasBack ? 'Yes' : 'No'}
{/* Upload Areas: full width, 1 col if no back, 2 cols if back */}
{/* Front */}
onDrop(e, 'front')}
onClick={() => openPicker('front')}
className="group relative flex flex-col items-center justify-center rounded-lg border-2 border-dashed border-gray-300 bg-gray-50/60 px-4 py-6 sm:py-10 text-center hover:border-indigo-400 hover:bg-indigo-50/40 cursor-pointer transition"
>
{ const f = e.target.files?.[0]; if (f) handleFile(f, 'front') }}
/>
{frontFile ? (
{/* NEW preview */}
{frontPreview && (

)}
{frontFile.name}
) : (
<>
Click to upload front side
or drag and drop
PNG, JPG, JPEG up to 10MB
>
)}
{/* Back */}
{hasBack && (
onDrop(e, 'back')}
onClick={() => openPicker('back')}
className="group relative flex flex-col items-center justify-center rounded-lg border-2 border-dashed border-gray-300 bg-gray-50/60 px-4 py-6 sm:py-10 text-center hover:border-indigo-400 hover:bg-indigo-50/40 cursor-pointer transition"
>
{ const f = e.target.files?.[0]; if (f) handleFile(f, 'back') }}
/>
{backFile ? (
{/* NEW preview */}
{backPreview && (

)}
{backFile.name}
) : (
<>
Click to upload back side
or drag and drop
PNG, JPG, JPEG up to 10MB
>
)}
)}
{/* Info Box, errors, success, submit */}
Please ensure your ID documents:
- Are clearly visible and readable
- Show all four corners
- Are not expired
- Have good lighting (no shadows or glare)
- {hasBack ? 'Both front and back sides are uploaded' : 'Front side is uploaded'}
{error && (
{error}
)}
{success && (
Upload saved successfully.
)}