Index: frontend/src/components/PasswordInput.tsx
===================================================================
--- frontend/src/components/PasswordInput.tsx	(revision 4be753ca5df1b189f98c336e86d822788f0fd220)
+++ frontend/src/components/PasswordInput.tsx	(revision 029bb5db0885e97d6659dcaf36439e9ed67ee73c)
@@ -8,4 +8,5 @@
 	placeholder: string;
 	onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
+	disabled: boolean;
 	error?: string;
 }
@@ -16,4 +17,5 @@
 	placeholder,
 	onChange,
+	disabled,
 	error,
 }) => {
@@ -32,4 +34,5 @@
 				onChange={onChange}
 				className="w-full mb-3 p-2 border rounded"
+				disabled={disabled}
 				placeholder={placeholder}
 				required
Index: frontend/src/pages/Login.tsx
===================================================================
--- frontend/src/pages/Login.tsx	(revision 4be753ca5df1b189f98c336e86d822788f0fd220)
+++ frontend/src/pages/Login.tsx	(revision 029bb5db0885e97d6659dcaf36439e9ed67ee73c)
@@ -23,5 +23,5 @@
 	const navigate = useNavigate();
 	const { login, customGoogleLogin, googleLoginLoading, useOAuth } = useAuth();
-	const [isLogging, setIsLogging] = useState(false);
+	const [isLoading, setIsLoading] = useState(false);
 
 	useEffect(() => {
@@ -50,5 +50,5 @@
 		e.preventDefault();
 		setErrors({});
-		setIsLogging(true);
+		setIsLoading(true);
 		try {
 			const response = await axios.post<{
@@ -86,5 +86,5 @@
 			}
 		}
-		setIsLogging(false);
+		setIsLoading(false);
 	};
 	return (
@@ -107,4 +107,5 @@
 					required
 					value={formData.email}
+					disabled={isLoading || googleLoginLoading}
 					onChange={handleChange}
 					placeholder="Email"
@@ -117,4 +118,5 @@
 					name="password"
 					value={formData.password}
+					disabled={isLoading || googleLoginLoading}
 					onChange={handleChange}
 					placeholder="Лозинка"
@@ -129,8 +131,9 @@
 				<button
 					type="submit"
+					disabled={isLoading || googleLoginLoading}
 					className={`w-full bg-blue-600 text-white p-2 rounded hover:bg-blue-700 
-						${isLogging ? "opacity-70 cursor-not-allowed" : ""}`}
+						${isLoading || googleLoginLoading ? "opacity-70 cursor-not-allowed" : ""}`}
 				>
-					{isLogging ? "Се најавува..." : "Најави се"}
+					{isLoading ? "Се најавува..." : "Најави се"}
 				</button>
 
@@ -151,7 +154,9 @@
 							type="button"
 							onClick={() => customGoogleLogin?.()}
-							disabled={googleLoginLoading}
+							disabled={isLoading || googleLoginLoading}
 							className={`w-full mt-3 sm:mt-4 bg-white border border-gray-300 text-gray-700 p-2 rounded hover:bg-gray-50 flex items-center justify-center gap-2 ${
-								googleLoginLoading ? "opacity-70 cursor-not-allowed" : ""
+								googleLoginLoading || isLoading
+									? "opacity-70 cursor-not-allowed"
+									: ""
 							}`}
 						>
Index: frontend/src/pages/Register.tsx
===================================================================
--- frontend/src/pages/Register.tsx	(revision 4be753ca5df1b189f98c336e86d822788f0fd220)
+++ frontend/src/pages/Register.tsx	(revision 029bb5db0885e97d6659dcaf36439e9ed67ee73c)
@@ -22,5 +22,5 @@
 		fullName: "",
 	});
-	const [loading, setLoading] = useState(false);
+	const [isLoading, setIsLoading] = useState(false);
 	const [errors, setErrors] = useState<
 		Partial<Record<keyof RegisterForm, string[]>> & {
@@ -58,5 +58,5 @@
 			return;
 		}
-		setLoading(true);
+		setIsLoading(true);
 
 		try {
@@ -93,5 +93,5 @@
 			}
 		} finally {
-			setLoading(false);
+			setIsLoading(false);
 		}
 	};
@@ -115,4 +115,5 @@
 					required
 					value={formData.email}
+					disabled={isLoading || googleLoginLoading}
 					onChange={handleChange}
 					placeholder="Email"
@@ -129,4 +130,5 @@
 					onChange={handleChange}
 					placeholder="Лозинка"
+					disabled={isLoading || googleLoginLoading}
 					error={
 						errors.password
@@ -140,4 +142,5 @@
 					placeholder="Потврди ја лозинката"
 					onChange={handleChange}
+					disabled={isLoading || googleLoginLoading}
 				/>
 				{errors.confirmPassword && (
@@ -152,4 +155,5 @@
 					value={formData.fullName}
 					onChange={handleChange}
+					disabled={isLoading || googleLoginLoading}
 					placeholder="Име презиме"
 					className="w-full mb-2 sm:mb-3 p-2 border rounded"
@@ -163,10 +167,10 @@
 				<button
 					type="submit"
-					disabled={loading}
+					disabled={isLoading}
 					className={`w-full bg-blue-600 text-white py-2 rounded hover:bg-blue-700 transition ${
-						loading ? "opacity-50 cursor-not-allowed" : ""
+						isLoading ? "opacity-50 cursor-not-allowed" : ""
 					}`}
 				>
-					{loading ? "Се регистрира..." : "Регистрирај се"}
+					{isLoading ? "Се регистрира..." : "Регистрирај се"}
 				</button>
 				{useOAuth && (
